除了header之外,如何select满栏?
How to select full column except the header?
这是我最难弄清楚的事情,这是在筛选堆栈溢出 4 小时后没有结果。
如果您有空白行,它不会在意,也不会删除您的 header。
这是一个简单的解决方案。
Call RangeA2SelectandClear
Call RangeB2SelectandClear
Call RangeC2SelectandClear
Call RangeD2SelectandClear
如上调用
和下面的潜艇。
Sub RangeA2SelectandClear()
Range(Cells(2, 1), Cells(Rows.Count, 1)).ClearContents
End Sub
Sub RangeB2SelectandClear()
Range(Cells(2, 2), Cells(Rows.Count, 2)).ClearContents
End Sub
Sub RangeC2SelectandClear()
Range(Cells(2, 3), Cells(Rows.Count, 3)).ClearContents
End Sub
Sub RangeD2SelectandClear()
Range(Cells(2, 4), Cells(Rows.Count, 4)).ClearContents
End Sub
编辑"more ways of doing things like so:"
万一它不select你的范围。
Range(Cells(2, ColNum), Cells(Rows.Count, ColNum).End(xlUp))
到 select 中的一行单元格(计算列而不是计算行)
Range(Cells(2, 2), Cells(2, Columns.Count).End(xlToLeft)).Select
到 select 列的范围,不包括 header 像这样使用:
Range(Cells(2, "A"), Cells(Rows.Count, "D").End(xlUp)).Select
或*更新于 10-22-15
Range("A7", Cells(Rows.Count, "E").End(xlUp)).Select
以下 select 是另一个 sheet 中的范围,但从技术上讲,您不能 select 另一个 sheet 中的范围,所以我只使用我想要的特定操作对于 select 离子。如果我以这种方式使用它,这会使代码更快。
*更新于 10-22-15
With Worksheets("Template BOM").Range(Worksheets("Template BOM").Cells(7, "A"), Worksheets("Template BOM").Cells(Rows.Count, "E").End(xlDown))
'updated 10-22-15 there is no limit to the range now.
'.Select 'if using .select this code fails.
.ClearContents
.Interior.ColorIndex = xlColorIndexNone
End With
Call RangeA2SelectandClear
Sub RangeA2SelectandClear()
Range(Cells(2, 1), Cells(Rows.Count, 1)).ClearContents
End Sub
一个过程适用于任何列而不是每个列都有一个过程不是更好吗?
Sub Test()
Call ColumnSelectAndClear(1)
Call ColumnSelectAndClear(2)
ColumnSelectAndClear 3
End Sub
Public Sub ColumnSelectAndClear(ColNum As Long)
With ActiveSheet
.Range(.Cells(2, ColNum), .Cells(Rows.Count, ColNum)).ClearContents
End With
End Sub
您可以使用以下
Dim myRange As Range: Set myRange = Intersect(ActiveSheet.UsedRange, Rows("2:65536"))
myRange.ClearContents
这是我最难弄清楚的事情,这是在筛选堆栈溢出 4 小时后没有结果。
如果您有空白行,它不会在意,也不会删除您的 header。
这是一个简单的解决方案。
Call RangeA2SelectandClear
Call RangeB2SelectandClear
Call RangeC2SelectandClear
Call RangeD2SelectandClear
如上调用
和下面的潜艇。
Sub RangeA2SelectandClear()
Range(Cells(2, 1), Cells(Rows.Count, 1)).ClearContents
End Sub
Sub RangeB2SelectandClear()
Range(Cells(2, 2), Cells(Rows.Count, 2)).ClearContents
End Sub
Sub RangeC2SelectandClear()
Range(Cells(2, 3), Cells(Rows.Count, 3)).ClearContents
End Sub
Sub RangeD2SelectandClear()
Range(Cells(2, 4), Cells(Rows.Count, 4)).ClearContents
End Sub
编辑"more ways of doing things like so:"
万一它不select你的范围。
Range(Cells(2, ColNum), Cells(Rows.Count, ColNum).End(xlUp))
到 select 中的一行单元格(计算列而不是计算行)
Range(Cells(2, 2), Cells(2, Columns.Count).End(xlToLeft)).Select
到 select 列的范围,不包括 header 像这样使用:
Range(Cells(2, "A"), Cells(Rows.Count, "D").End(xlUp)).Select
或*更新于 10-22-15
Range("A7", Cells(Rows.Count, "E").End(xlUp)).Select
以下 select 是另一个 sheet 中的范围,但从技术上讲,您不能 select 另一个 sheet 中的范围,所以我只使用我想要的特定操作对于 select 离子。如果我以这种方式使用它,这会使代码更快。 *更新于 10-22-15
With Worksheets("Template BOM").Range(Worksheets("Template BOM").Cells(7, "A"), Worksheets("Template BOM").Cells(Rows.Count, "E").End(xlDown))
'updated 10-22-15 there is no limit to the range now.
'.Select 'if using .select this code fails.
.ClearContents
.Interior.ColorIndex = xlColorIndexNone
End With
Call RangeA2SelectandClear
Sub RangeA2SelectandClear()
Range(Cells(2, 1), Cells(Rows.Count, 1)).ClearContents
End Sub
一个过程适用于任何列而不是每个列都有一个过程不是更好吗?
Sub Test()
Call ColumnSelectAndClear(1)
Call ColumnSelectAndClear(2)
ColumnSelectAndClear 3
End Sub
Public Sub ColumnSelectAndClear(ColNum As Long)
With ActiveSheet
.Range(.Cells(2, ColNum), .Cells(Rows.Count, ColNum)).ClearContents
End With
End Sub
您可以使用以下
Dim myRange As Range: Set myRange = Intersect(ActiveSheet.UsedRange, Rows("2:65536"))
myRange.ClearContents