【问题标题】:Visual Basic Excel For Loop In Multiple Cells How To Use The Counter In The Range("")Visual Basic Excel For 在多个单元格中循环如何使用范围内的计数器(“”)
【发布时间】:2012-07-27 13:49:32
【问题描述】:
这是我的,所以H后面需要跟单元格的编号,我这里想用计数器i,但是不行。我究竟做错了什么? :)
For i = 60 To 63
Range("Hi").AddComment
Range("Hi").Comment.Visible = False
Range("Hi").Comment.Text Text:=""
i = i + 1
Range("Hi").Select
i = i - 1
Next
End Sub
【问题讨论】:
标签:
excel
vba
loops
for-loop
【解决方案1】:
使用这个:
Range("H" & i)
正如您所写,"Hi" 没有使用变量 i,因为您将它放在引号中。
【解决方案2】:
您需要这样做:
For i = 60 To 63
Range("H" & i).AddComment
Range("H" & i).Comment.Visible = False
Range("H" & i).Comment.Text Text:=""
i = i + 1
Range("H" & i).Select
i = i - 1
Next
End Sub
& 运算符在 VBA 中进行连接。
【解决方案3】:
你应该像这样格式化它:
For i = 60 To 63
Range("H" & i).AddComment
Range("H" & i).Comment.Visible = False
Range("H" & i).Comment.Text Text:=""
i = i + 1
Range("H" & i).Select
i = i - 1
Next i
End Sub
原因是字母H是一个字符,i是一个变量。双引号 "Hi" 内的任何内容,例如 Excel 将读取为文本字符串。
当 Excel 读取引号 i 之外的单词或字母时,它将假定它是一个变量。 & 字符将两者作为文本连接在一起。
这意味着每次循环运行时,Excel 都会将其读取为"H" and i,并将其转换为“H1”、“H2”、“H3”、....“H60”并输入到Range()就像你正在寻找的那样。
【解决方案4】:
这对您更有效吗?当 i 的值在循环代码中开始变化时,我总是遇到问题
For i = 60 To 63
With Range("H" & i)
.Select
.AddComment
.Comment.Visible = False
.Comment.Text Text:=""
end with
Next
End Sub