0

当我运行我的代码时,它说我正在使用正确的单元格(通过我的变量),但它没有激活单元格或将我的变量值输入到单元格中。

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").Activate 放在活动工作表中,我可以看到该单元格何时激活,但我的变量不会影响位置的变化。

MyColumnNumner 逐步添加“1”,并且我的当前行保持在 2,这是应该的,但在工作表上没有任何变化。您能在此片段中看到任何错误,还是需要更多信息?谢谢你的帮助。

4

3 回答 3

1

一般来说,永远不要使用,.Activate或者.Select如果可以避免的话。您的代码可以复制为单行代码:

Cells(currentRow1, myColumnNumber).Resize(, 3).Value = Array(FirstName & LastName, AccNumber, AccName)

作为旁注,您正在尝试使用Range("Address")但给它一个数字作为列,因此使用单元格而不是范围(如我提供的代码所示)。

我的意思是, Range 方法采用列字母,例如Range("A1")or Range("C3")。你给它数字,所以它看起来像这样Range("11"),它不是一个有效的范围。我有点惊讶你没有收到错误。

但是,Cells 方法采用列号或列字母。Cells(rownumber, columnnumber)根据提供的代码,这就是您应该如何引用适当的单元格。

于 2013-09-19T18:02:23.663 回答
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
于 2013-09-19T17:58:05.150 回答
0

Range(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 
于 2013-09-19T17:42:04.540 回答