Excel VBA单元格将不会激活

Excel VBA单元格将不会激活,vba,excel,Vba,Excel,当我运行代码时,它会说我正在使用正确的单元格(通过变量),但它不会激活单元格或将变量值输入单元格 myColumnNumber = 1 Range(myColumnNumber & currentRow1).Activate Range(myColumnNumber & currentRow1) = FirstName & LastName myColumnNumber = myColumnNumber + 1 Range(myColumnNumber & c

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

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,这是应该的,但在工作表上没有任何更改。你能在这个剪报中看到任何错误吗,或者需要更多的信息吗?感谢您的帮助。

范围(myColumnNumber¤tRow1)应在您的工作簿中引用该范围

尝试添加范围对象,而不是使用范围进行引用

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 

一般来说,不要使用
。激活
。如果可以避免,请选择
。您的代码可以复制为一行:

Cells(currentRow1, myColumnNumber).Resize(, 3).Value = Array(FirstName & LastName, AccNumber, AccName)
作为旁注,您试图使用
范围(“地址”)
,但给它一个数字作为列,所以使用单元格而不是范围(如我提供的代码所示)

我的意思是,Range方法采用列字母,如
Range(“A1”)
Range(“C3”)
。您正在给它编号,因此它看起来像是一个无效的
范围(“11”)
。我有点惊讶你没有出错


但是,Cells方法采用列号或列字母<代码>单元格(rownumber,columnnumber)
这是根据提供的代码引用相应单元格的方式。

尝试
。在您的情况下选择
,但不要使用
。在generalput range中选择
。value=Name而不仅仅是range您的语法处于禁用状态。尝试
单元格(currentRow1,myColumnNumber)。首先激活
为什么要激活。你可以把它的价值。将值放入单元格的另一种方法是单元格(currentRow1,myColumnNumber)。value=FirstName&LastName我更喜欢它。或者整个过程减少到
单元格(currentRow1,myColumnNumber)。调整大小(1,3)。value=Array(FirstName&LastName,AccNumber,AccName)
对不起,我以前没有看到这个,rng(myColumnNumber¤tRow1)=FirstName&LastNameName结果。只有单元格A1保持高亮显示,并且没有添加任何我的值。这仍然不起作用。没有选择正确的单元格,也没有输入值。我也查看了MSDN,为每行添加了sheetname,但这也不起作用。
Cells(currentRow1, myColumnNumber).Resize(, 3).Value = Array(FirstName & LastName, AccNumber, AccName)