在列“I”中,我有一系列公式中的数据。我可以将特殊的复制和粘贴到C的新列,它只给出了值。
但有更好的方法吗?当我在新列C中读取数据时,这会给出粘贴数据的范围,这些数据很乱,意味着有很多空格。
谢谢:)
Sub Macro2()
'
' Macro2 Macro
'
Sheets("Sheet1").Columns(9).Copy
Sheets("Sheet1").Columns(3).PasteSpecial xlPasteValues
End Sub
答案 0 :(得分:0)
请测试。
S1:选择工作表包含要复制的数据
S2:运行宏
Sub macro1()
Dim data As Variant
data = ActiveSheet.Columns(9)
ActiveSheet.Columns(3) = data
End Sub
如果您的所有数据都是数字,则只需将force转换为数字
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:这不是优化解决方案,因为它读取整列(1048576行)
答案 1 :(得分:0)
如果您对仅复制值感兴趣,可以这样做:
第1步:确定专栏I
中的最后一行:lastRow = Cells(1, 9).End(xlDown).Row
。
第2步:将所有值复制到列C
:
For i = 1 To lastRow
Cells(i, 3).Value = Cells(i, 9).Value
Next i
将所有内容放在一起,宏是:
Sub CopyPaste()
Dim lastRow, i As Long
lastRow = Cells(1, 9).End(xlDown).Row
'alternatively specify explicitly amount of rows you want to copy, i.e.:
'lastRow = 25
For i = 1 To lastRow
Cells(i, 3).Value = Cells(i, 9).Value
Next i
End Sub