Excel VBA 对于 select 列中的所有内容,包括空白
Excel VBA for select everything in a column, including blanks
我想做的是将一整列从 sheet 复制到另一列。结果我只得到第一行,结果如下:
Sheets("z_raw").Select
Range("A2").End(xlDown).Select
Selection.SpecialCells(xlCellTypeVisible).Copy
Sheets("raw").Select
Range("b2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
第一行包含无法更改的 headers。任何帮助表示赞赏。谢谢!
.SpecialCells(xlCellTypeVisible)
只会给你可见的单元格。如果你想复制整个列,而不是试图只用 Range("A2").End(xlDown)
找到已使用的区域,你可以这样做:
Sheets("z_raw").Range("A:A").Copy
Sheets("raw").Range("B:B").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
请记住,使用 select
等通常被认为是危险的。 This 是关于这个主题的一些很好的读物。
您在评论中提到您希望保留的列中有 headers(我假设在目标列中)。为此,只需保存列中第一个单元格的值(或 headers 所在的任何位置)并在粘贴后替换这些值。
Dim header As String
Sheets("z_raw").Range("A:A").Copy
header = Sheets("raw").Range("B1").Value
Sheets("raw").Range("B:B").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("raw").Range("B1").Value = header
请记住,如果您在 B1
中有任何公式,它们将不会在粘贴后转移。 .Value
属性 returns 您在单元格中看到的内容。如果有公式,只需将 .Value
替换为 .Formula
.
我想做的是将一整列从 sheet 复制到另一列。结果我只得到第一行,结果如下:
Sheets("z_raw").Select
Range("A2").End(xlDown).Select
Selection.SpecialCells(xlCellTypeVisible).Copy
Sheets("raw").Select
Range("b2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
第一行包含无法更改的 headers。任何帮助表示赞赏。谢谢!
.SpecialCells(xlCellTypeVisible)
只会给你可见的单元格。如果你想复制整个列,而不是试图只用 Range("A2").End(xlDown)
找到已使用的区域,你可以这样做:
Sheets("z_raw").Range("A:A").Copy
Sheets("raw").Range("B:B").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
请记住,使用 select
等通常被认为是危险的。 This 是关于这个主题的一些很好的读物。
您在评论中提到您希望保留的列中有 headers(我假设在目标列中)。为此,只需保存列中第一个单元格的值(或 headers 所在的任何位置)并在粘贴后替换这些值。
Dim header As String
Sheets("z_raw").Range("A:A").Copy
header = Sheets("raw").Range("B1").Value
Sheets("raw").Range("B:B").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("raw").Range("B1").Value = header
请记住,如果您在 B1
中有任何公式,它们将不会在粘贴后转移。 .Value
属性 returns 您在单元格中看到的内容。如果有公式,只需将 .Value
替换为 .Formula
.