按名称查找列标题并选择列标题下方的所有数据

问题描述 投票:0回答:1

我从这篇文章中复制了这段代码:stack post

Sub FindColumn()
  Dim rngAddress As Range
  Set rngAddress = Range("A1:BZ1").Find("STVCNTY CODE Mailing")
  If rngAddress Is Nothing Then
    MsgBox "STVCNTY CODE Mailing column was not found."
    Exit Sub
  End If
  Range(rngAddress, rngAddress.End(xlDown)).Select
End Sub

我似乎工作除了一个问题,它遇到一个空单元格时停止'选择'。见pic stops select short

如何修改此代码以选择整个列并将格式更改为000?

我已经完成了这项工作,我已经认为我所寻找的专栏是静态的,但现在我被告知列的位置因报告而异,即星期一报告中的列AN,星期二的列BA等。

这是我已经拥有的简单代码:

' formats column to 000

Columns("AN:AN").Select

Selection.NumberFormat = "000"

任何帮助,将不胜感激

excel-vba vba excel
1个回答
0
投票

试试这个。转到列的底部并进行处理(无需选择任何一个)。

Sub FindColumn()

Dim rngAddress As Range

Set rngAddress = Range("A1:BZ1").Find("STVCNTY CODE Mailing")
If rngAddress Is Nothing Then
  MsgBox "STVCNTY CODE Mailing column was not found."
  Exit Sub
End If

'just used range
Range(rngAddress, Cells(Rows.Count, rngAddress.Column).End(xlUp)).NumberFormat = "000"

'OR entire column
rngAddress.EntireColumn.NumberFormat = "000"

Range(rngAddress.Offset(1), rngAddress.Offset(199)).Formula = "=IFERROR(VLOOKUP(" & rngAddress.Offset(1, -1).Address(0, 0) & ",[CountyCodes2.xlsm]Sheet1!CountyTable,2,FALSE),"""")"

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.