【发布时间】:2019-08-20 17:50:57
【问题描述】:
我需要有关此 VBA 的帮助。提前致谢。
我想为值选择一个范围(值,整列): FirstDate、EndDate 和 Number。 我的 VBA:
Sub DateTest()
Dim FirstDate As Date ' Declare variables.
Dim IntervalType As String
Dim Number As Integer
Dim EndDate As Date
Dim TempDate As Date
Dim i As Integer
IntervalType = "m" ' "m" specifies MONTHS as interval.
FirstDate = Cells(1, 1).Value
EndDate = Cells(1, 2).Value
Number = Cells(1, 3).Value ' "Number" For the syntax DateAdd.
' If the number is not greater than zero an infinite loop will happen.
If Number <= 0 Then
MsgBox "Number needs to be greater than 0", vbCritical
Exit Sub
End If
i = 1
Do Until TempDate = EndDate
If i <= 1 Then
TempDate = DateAdd(IntervalType, Number, FirstDate)
Else
TempDate = DateAdd(IntervalType, Number, TempDate)
End If
i = i + 1
Debug.Print i
Loop
Range("D1").Value = i - 1
End Sub
正如我之前写的那样,我不仅要为第一个单元格运行宏(当前宏对于值 (1,1) (1,2) (1,3) 运行良好 ),正如您在上面看到的 FirstDate、EndDate 和 Number 我想用于所有日期: Column1、Column2、Column3
我做了一些更改,例如 EndDate:
EndDate = Format(.Cells(lRow, 2).Value)
不起作用,取 1 个单元格的值,该列中的其余值将被忽略。
我试过了:
FirstDate = Range("A1:A20").Select EndDate = Range("B1:B20").Select Number = Range("C1:C20").Select
但我得到:“数字需要大于 0”
【问题讨论】:
-
你查过如何申请
.Format吗?除此之外,在第二次尝试中,您试图选择一个范围,同时将值应用于某些变量?我认为您要做的是遍历一个范围。在互联网上四处看看等等。我敢打赌有一些有用的例子可以找到。