无法将动态值提供给行(":")函数VBA

时间:2017-02-17 08:32:39

标签: vba dynamic rows

我试图更改25​​0行的日期格式,中间有15个单元格。 我无法提供动态行号来选择整行。

Sub Macro2()
Dim i As Long
Dim j As Long
Range("A2").Select
Do While i < 250
i = i + 1
j = ActiveCell.row
    Rows("j:j").Select
    Selection.NumberFormat = "m/d/yyyy"
    Cells(ActiveCell.row + 15, 1).Select
    Loop

End Sub

我没有专业的程序员。我已经在互联网上寻找行的语法,并且在给定j = 2,3,4 ....整数但不能执行这一行时它正在工作。请帮忙

2 个答案:

答案 0 :(得分:2)

您的问题是Rows的索引必须是数值或类似于"10:15"的字符串。您正尝试使用"j:j"字符串,但应该使用数字变量j

以下代码更适合您的任务:

Sub Macro2()
    Dim i As Long
    For i = 2 To 250 * 15 Step 15
        Rows(i).NumberFormat = "m/d/yyyy"
    Loop
End Sub

答案 1 :(得分:1)

有用的事情是,当你声明一个变量并想要使用它时,你不要像你"j:j"那样把它放在双引号中,你必须使用

Sub Macro2()
Dim i As Long
Dim j As Long
Range("A2").Select
Do While i < 250
    i = i + 1
    j = ActiveCell.row
    Rows(j & ":" & j).Select
    Selection.NumberFormat = "m/d/yyyy"
    Cells(ActiveCell.row + 15, 1).Select
Loop
End Sub

这应该也可以。但是在这里,因为您只想选择一行,所以您可以使用Rows(j).Select