Vid*_*dhi 5 excel vba excel-vba
我试图从D1复制公式并粘贴它直到最后一行(26446)值可能会增加
Dim lrow As Double
lrow = Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row
Range("D2").Copy Destination:=Range("D2:D" & lrow)
Range("D2" & "lrow").Copy 'THIS LINE SHOWS 1004 error
Range("D2:D" & "lrow").PasteSpecial Paste:=xlPasteValues
Run Code Online (Sandbox Code Playgroud)
怎么解决这个问题
您已经得到了两个出色的答案,因此这不是答案,而是对代码的增强。
您不需要将行变量声明为Double。Long 就足够好了。您可能想在此处阅读数据类型
您的代码可以简化为这样
代码
顺便说一句,你的问题说D1但你的代码正在D2考虑。所以我要和D2. 如果是D1则替换D2为D1下面的。
Sub Sample()
Dim lrow As Long
With Sheets("Sheet2")
lrow = .Range("A" & .Rows.Count).End(xlUp).Row
.Range("D2:D" & lrow).Formula = .Range("D2").Formula
.Range("E2:E" & lrow).Formula = .Range("E2").Formula
.Range("F2:F" & lrow).Formula = .Range("F2").Formula
.Range("G2:G" & lrow).Formula = .Range("G2").Formula
.Range("D2:G" & lrow).Value = .Range("D2:G" & lrow).Value
End With
End Sub
Run Code Online (Sandbox Code Playgroud)