我编写的这段代码遇到了一些问题:
Sub lol()
Dim counter As Integer
counter = 1
Do Until Selection.Value = ""
Dim ws As Worksheet
Sheets("Row1").Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Set ws = ActiveSheet
Sheets("Sheet1").Select
ws.Name = "Row " + CStr(ActiveCell.Value)
Set newSelection = ActiveCell.Offset(1, 0)
ws.Select
ActiveCell.FormulaR1C1 = "=Sheet1!R[counter]C[1]"
ws.Range("A1").Select
Selection.AutoFill Destination:=ws.Range("A1:C1"), Type:=xlFillDefault
ws.Range("A1:C1").Select
Sheets("Sheet1").Select
newSelection.Select
counter = counter + 1
Loop
ActiveCell.Offset(-1, 0).Select
MsgBox ("All sheets updated")
End Sub
运行此行时出现错误:
ActiveCell.FormulaR1C1 = "=Sheet1!R[counter]C[1]"
但我不知道为什么。我将该变量定义为整数,所以我不明白为什么它不起作用。如果我删除计数器,而只写“=Sheet1!R[1]C[1]”,它就可以正常工作,所以我知道里面的东西必须是一个整数。 (特别的问题是它总是同一行,但我需要它为每次迭代删除一行,这就是我创建计数器变量的原因,但并不真正明白为什么它不起作用。有什么想法吗?(是我错误地定义了变量类型,还是这在语义上不适合我想做的事情?)
对“计数器”的引用需要位于引号之外:
ActiveCell.FormulaR1C1 = "=Sheet1!R[" & counter & "]C[1]"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)