用户输入日期范围内的Excel VBA总和数据
我试图编写一个宏,它将根据用户输入的日期范围对数据求和。我已经编写了代码来获取用户输入范围并验证它是否为日期,以及将其转换为与数据文件中标题的语法相匹配,但是我很难确定如何仅对该日期范围内的月份求和,每次运行宏时,日期范围都会发生更改 这是一本书。如果用户输入1/1/16和3/31/16,我需要“数量总和”是2016年1月、2月和3月的数量总和。“成本总和”也需要这样做。同一张工作表上有多个表需要这样做,更多的表、月和列将继续添加 如果您想查看格式,请参阅指向该文件的链接: 这是我现有的代码:用户输入日期范围内的Excel VBA总和数据,vba,excel,Vba,Excel,我试图编写一个宏,它将根据用户输入的日期范围对数据求和。我已经编写了代码来获取用户输入范围并验证它是否为日期,以及将其转换为与数据文件中标题的语法相匹配,但是我很难确定如何仅对该日期范围内的月份求和,每次运行宏时,日期范围都会发生更改 这是一本书。如果用户输入1/1/16和3/31/16,我需要“数量总和”是2016年1月、2月和3月的数量总和。“成本总和”也需要这样做。同一张工作表上有多个表需要这样做,更多的表、月和列将继续添加 如果您想查看格式,请参阅指向该文件的链接: 这是我现有的代码:
Sub DateRange()
Dim dateString As String, TheDate As Date
Dim dateString2 As String, TheDate2 As Date
Dim valid As Boolean: valid = True
Dim valid2 As Boolean: valid2 = True
Do
dateString = Application.InputBox("Enter Start Date in xx/xx/xx format: ")
If IsDate(dateString) Then
TheDate = DateValue(dateString)
valid = True
Else
MsgBox "Invalid date"
valid = False
End If
Loop Until valid = True
Do
dateString2 = Application.InputBox("Enter End Date in xx/xx/xx format: ")
If IsDate(dateString2) Then
TheDate2 = DateValue(dateString2)
valid2 = True
Else
MsgBox "Invalid date"
valid2 = False
End If
Loop Until valid2 = True
Application.Calculation = xlManual
[C3] = TheDate
[C4] = TheDate2
StartMonth = Month(TheDate) & "/1/" & Year(TheDate)
EndMonth = Month(TheDate2) & "/1/" & Year(TheDate2)
'Application.Calculate
'Application.Calculation = xlAutomatic
End Sub
任何帮助都将不胜感激 您真的需要在vba中执行此操作吗?理想情况下,是的。你有其他的建议吗?if语句(也许还有数组公式)?如果我不能找到VBA的解决方案,这可能就是我必须走的路线。