用户输入日期范围

时间:2017-07-06 17:56:56

标签: excel vba excel-vba

我尝试编写一个宏,根据用户输入的日期范围对数据求和。我已经得到了代码,以获取用户输入范围并验证它是一个日期,并将其转换为与我的数据文件中的标题的语法相匹配,但我无法计算如何仅对该日期范围内的月份求和,每次运行宏时日期范围都会发生变化。

这是screenshot of the workbook。如果用户输入1/1/16和3/31/16,我需要"数量总和"是2016年1月,2月和3月的数量之和。对于"成本总和,同样需要。"同一个工作表上有多个表需要进行此操作,并且将继续添加更多表,月和列。

以下是该文件的链接,如果您想查看格式:https://www.dropbox.com/s/bc5okk684livm3a/TestFile_DateSum.xlsx?dl=0

这是我现有的代码:

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

非常感谢任何帮助!

0 个答案:

没有答案