获取与公式的列,并获取值只有新的列

在这里输入图像说明 我希望的结果是在C列有一个单独的列,只有值。

在“I”列中,我有一系列公式中的数据。 我可以复制并粘贴一个新的专栏到C,只给我的价值。

但有没有更好的方法来做到这一点? 当我在新的C列中读取数据时,这给出了粘贴数据的范围,这些数据是混乱的,意味着大量的空白。

谢谢 :)

Sub Macro2() ' ' Macro2 Macro ' Sheets("Sheet1").Columns(9).Copy Sheets("Sheet1").Columns(3).PasteSpecial xlPasteValues End Sub 

请testing。
S1:select工作表包含要复制的数据
S2:运行macros

  Sub macro1() Dim data As Variant data = ActiveSheet.Columns(9) ActiveSheet.Columns(3) = data End Sub 

如果您的所有数据都是数字,那么只需强制转换为数字

 Sub macro1() Dim data As Variant data = ActiveSheet.Columns(9) Dim i As Long For i = LBound(data) To UBound(data) If Len(data(i, 1)) > 0 Then data(i, 1) = CLng(data(i, 1)) End If Next i ActiveSheet.Columns(3) = data End Sub 

编辑您想要复制整个列p / s:这不是一个优化解决scheme,因为它读取整个列(1048576行)

如果你有兴趣只复制值,你可以这样做:

第一步:确定第一列的最后一行: lastRow = Cells(1, 9).End(xlDown).Row

第2步:将所有值复制到列C

 For i = 1 To lastRow Cells(i, 3).Value = Cells(i, 9).Value Next i 

把它放在一起,macros观是:

 Sub CopyPaste() Dim lastRow, i As Long lastRow = Cells(1, 9).End(xlDown).Row 'alternatively specify explicitly amount of rows you want to copy, ie: 'lastRow = 25 For i = 1 To lastRow Cells(i, 3).Value = Cells(i, 9).Value Next i End Sub