没有足够的细节来真正写任何东西。但这里有一个教程/示例,说明如何从单独的工作簿访问数据以及如何将值写入循环内的单元格。
您正在寻找的输出行 # 遵循模式的方程对于1,2,3,2,3,2,3...
普通数学来说有点复杂,但可以通过使用布尔表达式作为方程的一部分在编程数学中完成。
Sub RowNumberer()
Dim CountWB As Workbook
Set CountWB = Workbooks("Your Count Sheet Workbook's Name (plus file extension)")
Dim CountSheet As Worksheet
Set CountSheet = CountWB.Worksheets("Your Count Sheet's Name")
Dim CountSheetValue As Long
CountSheetValue = CountSheet.Range("Cell Address of your Count result (3, 5, 7, 9)")
Dim UploadWB As Workbook
Set UploadWB = Workbooks("Your Upload Template Workbook's Name (plus file extension)")
Dim OutputSheet As Worksheet
Set OutputSheet = UploadWB.Sheets("The Name of the Sheet you want to number the rows on")
Dim i As Long
For i = 1 To CountSheetValue
OutputSheet.Cells(i, 1) = i Mod 2 - 2 * (i > 1)
Next i
End Sub
解释公式:i Mod 2 - 2 * (i > 1)
i Mod 2
正在获取迭代值i
并在除以 2 后检索余数。这在 1 和 0 之间交替。
我们只需+2
要将其从1 and 0
移至3 and 2
. 但我们只希望+2
在第一个数字之后,因为我们希望第一个数字是 1。
所以我添加了布尔表达式(i > 1)
,当 False 时为 0,当 True 时为 -1。我不知道为什么在 VBA 中 True = -1。所以项- 2 * (i > 1)
是 0 wheni = 1
和+2
when i > 1
。