当我运行我的代码时,它说我正在使用正确的单元格(通过我的变量),但它不会激活单元格或将我的变量值输入到单元格中。
myColumnNumber = 1
Range(myColumnNumber & currentRow1).Activate
Range(myColumnNumber & currentRow1) = FirstName & LastName
myColumnNumber = myColumnNumber + 1
Range(myColumnNumber & currentRow1) = AccNumber
myColumnNumber = myColumnNumber + 1
Range(myColumnNumber & currentRow1) = AccName
我的变量在运行时都显示正确的值,但工作表不会更改。例如,如果我放置Range(“a1”)。激活活动表格我可以看到该单元格何时激活,但我的变量不会影响位置的变化。
MyColumnNumner逐步添加“1”,我的当前行保持在2,应该如此,但在工作表上没有任何变化。你能看到这个片段中的任何错误,还是需要更多信息?谢谢你的帮助。
答案 0 :(得分:1)
一般来说,如果可以避免,请不要使用.Activate
或.Select
。您的代码可以作为一行代码复制:
Cells(currentRow1, myColumnNumber).Resize(, 3).Value = Array(FirstName & LastName, AccNumber, AccName)
作为旁注,您试图使用Range("Address")
但是给它一个数字作为列,因此请使用Cells而不是Range(如我提供的代码所示)。
我的意思是,Range方法采用列字母,如Range("A1")
或Range("C3")
。您正在给它编号,所以看起来这个Range("11")
不是有效范围。我很惊讶你没有收到错误。
然而,Cells方法采用列号或列字母。 Cells(rownumber, columnnumber)
根据提供的代码,您应该如何引用相应的单元格。
答案 1 :(得分:0)
范围(myColumnNumber& currentRow1)应引用工作簿中的范围。
尝试添加范围对象,而不是使用Range来引用。
dim rng as Range
set rng = Activeworksheet.Cells
myColumnNumber = 1
rng (myColumnNumber & currentRow1).Activate
rng (myColumnNumber & currentRow1) = FirstName & LastName
myColumnNumber = myColumnNumber + 1
rng (myColumnNumber & currentRow1) = AccNumber
myColumnNumber = myColumnNumber + 1
rng (myColumnNumber & currentRow1) = AccName
答案 2 :(得分:0)
myColumnNumber = "A"
Range(myColumnNumber & currentRow1).Activate 'No Use
Range(myColumnNumber & currentRow1).Value = FirstName & LastName
' myColumnNumber = myColumnNumber + 1 Error
'The Offset property is the one that you will use the most with Range to move around
'the 'sheet.
Range(myColumnNumber & currentRow1).Offset(0,1).Value = AccNumber
Range(myColumnNumber & currentRow1).Offset(0,2).Value = AccName