【发布时间】:2020-01-16 16:40:30
【问题描述】:
我想要做的是将表格放入工作表并让宏自动填充数据库中的信息,但是当我要在列中拖动数字(而不是公式)时,我得到了错误 1004,我也尝试了其他方法,有时不会给我一个错误,但不会做我想做的事。
我的逻辑是这样的:首先将输入表中的信息填充到数据库表中(这部分有效) 然后计算最近填充的数据库部分有多少行,以计算用作目标的新行数(它计算正确)。然后拖一列补全信息,这样不行。
代码如下:
Sub Macro1()
Dim Size As Integer
Dim L As Integer
Sheets("DATABASE").Activate
L = (Range("C11").End(xlDown).Row)
MsgBox (L)
Sheets("Input Sheet").Activate
Size = (Range("B2").End(xlDown).Row) - 2
MsgBox (Size)
**This is filling the info from the input sheet to the database**
Range("B3:C3" & Size).Cut Sheets("DATABASE").Range("C1:D1").Offset(L, 0)
Range("D3:D3" & Size).Cut Sheets("DATABASE").Range("F1").Offset(L, 0) '
Range("E3:E3" & Size).Cut Sheets("DATABASE").Range("K1").Offset(L, 0) '
Range("F3:F3" & Size).Cut Sheets("DATABASE").Range("AJ1").Offset(L, 0) '
Sheets("DATABASE").Activate
Size = (Range("C11").End(xlDown).Row)
MsgBox (Size)
Range("B11:B11" & L).Select
**This is where I get the error**
Selection.AutoFill Destination:=Range("B11:B" & Size), Type:=xlFillDefault
End Sub
【问题讨论】:
-
"B11:B11" & Size应该是"B11:B" & Size。 -
顺便说一句,有更好的方法来实现你想要的。找到B列最后一行如图HERE然后使用
Range("B11:B" & lrow).Formula = Range("B11").Formula -
我也尝试过使用该语法,但我忘了放那个而不是我发布的那个。但它也不起作用。
-
我应该提到它,但在这种情况下我拖了数字。
-
那是因为
Range("B11:B11" & L).Select? :)