【问题标题】:VBA Error in autofill, error 1004, not dragging down numbers自动填充中的 VBA 错误,错误 1004,不向下拖动数字
【发布时间】: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? :)

标签: excel vba autofill


【解决方案1】:

不敢相信我花了两个小时才发现错误,但它是:

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)
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:B" & L).Select <---- this range selection is the correct one, on the previous version it had the wrong syntax
Selection.AutoFill Destination:=Range("B11:B" & Size), Type:=xlFillDefault
End Sub
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-14
  • 1970-01-01
  • 2016-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-12
相关资源
最近更新 更多