VBA遍历单元格

我正在寻找一种方法来遍历工作表中的单元格以粘贴值。

下面发布的代码将无法识别单元格的位置。 有没有办法循环单元格的位置,逐步将信息粘贴到所需的空间? 我想要代码将值粘贴到A1:C1中,然后移动4个空格,然后发送到E1:G1等等。

不确定如何迭代字母以移动单元格。

Sub test() Dim x As Integer Dim y As Integer Dim InputSheet As Worksheet Dim myBook As Workbook Set myBook = Excel.ActiveWorkbook Set InputSheet = myBook.Sheets("InputSheet") For y = 0 To 5 x = 4 InputSheet.Range("A1 + 4*y : C1 + 4*y").Value = x Next y End Sub 

您正在告诉工作簿从字面上查找范围“A1 + 4 * y:C1 + 4 * y”,这显然不是有效的地址。 您需要评估string外部的数字expression式,将其转换回string(显式使用Cstr或者可以将expression式放在圆括号中并让编译器为您执行,因为VBA是dynamictypes的,这是您可能想要的一个重要概念从基本上可以从上下文中找出它处理的stringtypesvariables),最后将其重新加载到您的地址中,以便使其工作。

由于你似乎是新的vba /编码,我会build议你弄清楚如何使用断点和手表来看看你的机器如何实际评估你的variables。

 InputSheet.Range("A" & (1+4*y) & ":C" & (1+4*y)).Value = x 

我会尝试使用“单元格”来做到这一点。

 Sub test() Dim x As Integer Dim y As Integer Dim InputSheet As Worksheet Dim myBook As Workbook Set myBook = Excel.ActiveWorkbook Set InputSheet = myBook.Sheets("InputSheet") For y = 0 To 5 x = 4 InputSheet.Range(InputSheet.Cells(1, 4 * y + 1), InputSheet.Cells(1, 4 * y + 3)).Value = x Next y End Sub 

您可以使用偏移function。

 For i = 0 to 5 x = 4 InputSheet.Range("A1:C1").Offset(0, i * 4) = x Next i