我正在尝试编写一个宏,它会找到一个价值"现货价格"在table2的标题中,然后取整个列,将该值复制并粘贴(作为值而不是公式)。我需要这样做,因为在该列中我有对外部工作簿的引用,我需要共享此工作表而不共享其他工作簿。这就是我写的
namespace A::B
此行发生错误(应用程序定义或对象定义的错误):
Sub row()
Dim firstrow As Range
Dim ColumnToPaste As Range
Dim copy As Range
Set firstrow = Worksheets("Raw Data").ListObjects("Table2").HeaderRowRange
Set ColumnToPaste = firstrow.Find("Spot price", , xlValues, xlWhole).Columns(1)
With Worksheets("Raw Data").Range(ColumnToPaste)
.PasteSpecial Paste:=xlPasteValues
End With
End Sub
我认为我使用了错误的范围参数但不确定如何正确编写它。
答案 0 :(得分:1)
以下内容如何,而不是复制整列,请指定范围:
Sub row2()
Dim ws As Worksheet: Set ws = Sheets("Raw Data")
'declare and set your worksheet, amend as required
Dim firstrow As Range
Dim ColumnToPaste As Range
Dim LastRow As Long
Set firstrow = ws.ListObjects("Table2").HeaderRowRange
Set ColumnToPaste = firstrow.Find("Spot price", , xlValues, xlWhole).Columns
col = ColumnToPaste.Column
LastRow = ws.Cells(ws.Rows.Count, col).End(xlUp).Row
'get the last row with data on Column A
With ws
.Range(.Cells(1, col), .Cells(LastRow, col)).Copy
.Range(.Cells(1, col), .Cells(LastRow, col)).PasteSpecial xlPasteValues
End With
End Sub