【发布时间】:2018-09-26 11:28:43
【问题描述】:
我正在编写一个脚本以在消息框中打印,单元格值和重复数从 1 到 5 计数。
目前,我有一个 for 循环来计算电子表格中的总行数。我不确定如何添加另一个 for 循环(嵌套 for 循环)来调用程序以将 1 到 5 添加到前 5 行,并在第 6 行再次从 1 到 5 重新启动,依此类推。
例如,
如果单元格 A1 到 A10 中的值分别为“Apple”,我想将 1 到 5 的数字连接起来,以便得到以下结果:
A1 = "Apple1"
A2 = "Apple2"
A3 = "Apple3"
A4 = "Apple4"
A5 = "Apple5"
A6 = "Apple1" 'it starts from 1 again
A7 = "Apple2"
等等
下面是我的示例代码:
Option Explicit
Sub appendCount()
Dim q, i, rowStart, rowEnd , rowNum, LR as Long
LR = Cells(Rows.Count, 1).End(xlUp).Row
rowNum = Range("A1:A" & LR).Count
For q = 1 To rowNum Step 1
If Not IsNull(Range("A" & q)) Then
For i = 1 to 5
MsgBox Range("A" & q).Value & i
Next i
End If
Next q
End Sub
任何帮助将不胜感激!
【问题讨论】:
-
我反复阅读你的句子,但不能确定你想要什么。什么有效,你想要什么?
-
我想将数字连接到每个单元格中的值。例如,单元格 A1、A2、A3、A4、A5 的值为“apple”。我想在每个单元格中添加从 1 到 5 的数字,并在之前以 5 结束时从 1 开始重复。所以我会得到 A1 = “apple1”,A2 = “apple2”,A3 = “Apple3”,A4 = “Apple4”,A5 = “Apple5”,A6 = “Apple1”,A7 = “Apple2”....
-
rowNum 似乎是不必要的。您已经在使用 LR 变量计算最后一行。
-
请注意
Dim q, i, rowStart, rowEnd , rowNum, LR as Long仅声明LR as Long而其他所有声明为Variant。您必须为 VBA 中的 每个 变量指定一个类型:Dim q as Long, i as Long, rowStart as Long, rowEnd as Long, rowNum as Long, LR as Long否则 VBA 会自动假定为Variant。