我正在尝试从单元格bottom_0cm_Box_45_B_135_amplitude.txt
到bottom_0cm_Box_45_B_135_wave_1.txt
列wsCL2
中的A
复制数据,直到数据结束;行数可以变化。
我想从该列的下一个空单元格粘贴到A2
的{{1}}列中。
A
尝试coSummary
方法时,有时会引发错误;其他时候它将正常执行。
我怀疑这与刷新Sub Test()
Dim wb As Workbook
Dim wsCL2 As Worksheet
Dim summary As Worksheet
Dim colLastRow As Long
Dim summaryLastRow As Long
Set wb = ActiveWorkbook
Set wsCL2 = wb.Sheets("Tocopyfrom")
Set summary = wb.Sheets("Summary")
'Defining last row of data in Colliers
summaryLastRow = summary.Cells(Rows.Count, 1).End(xlUp).Row
colLastRow = wsCL2.Cells(Rows.Count, 1).End(xlUp).Row
summary.Cells(10, 10).Value = colLastRow
summary.Cells(11, 10).Value = summaryLastRow
'Copying range from Colliers to Summary Page (***ERROR HERE***)
wsCL2.Range(Cells(2, "A").Address(), Cells(colLastRow, "A")) _
.Copy summary.Cells(summaryLastRow + 1, "A")
colLastRow = summary.Cells(Rows.Count, 1).End(xlUp).Row
End Sub
值或Copy
的值有关?
谢谢!
答案 0 :(得分:1)
您在此代码行中遇到问题:
wsCL2.Range(Cells(2, "A").Address(), Cells(colLastRow, "A")).Copy summary.Cells(summaryLastRow + 1, "A")
您使用了许多“单元”,这些单元不引用wsCL2,而是引用您的ActiveSheet,这可能不是您想要的。 这是正确的方法:
wsCL2.Range(wsCL2.Cells(2, "A").Address(), wsCL2.Cells(colLastRow, "A")).Copy summary.Cells(summaryLastRow + 1, "A")
为了更好地理解,这实际上是您的代码在说什么:
wsCL2.Range(ActiveSheet.Cells(2, "A").Address(), ActiveSheet.Cells(colLastRow, "A")).Copy summary.Cells(summaryLastRow + 1, "A")
编辑:我也不确定您如何使用这些引用 一次使用.Address:Cells(2,“ A”)。Address() 然后没有:单元格(colLastRow,“ A”) 我认为参考范围的一种更好方法是仅使用数字:
wsCL2.Range( wsCL2.Cells(2,1), wsCL2.Cells(colLastRow,1) )
最终编辑: 另一件事,如果您厌倦了编写wsCL2。
with wsCl2
.Range( .Cells(2,1), .Cells(colLastRow,1) )
end with