如何获取 VBA 范围内第一个非空白单元格的列字母?
How to get the column letter of the first non blank cell of a range in VBA?
我需要获取区域中第一个非空白单元格的列字母。这个范围基本上就是一行的一部分就好了。
示例:
范围 = A2:G2
第一个非空白单元格在 F2 单元格上。
需要获取 'F' 并将其存储在 String 变量中。
最有效的方法是什么?
谢谢
试试这个:
Sub columnName()
Dim mainRange As Range, cell As Range, columnName As String
Set mainRange = Range("A2:G2")
'Set mainRange = Selection
For Each cell In mainRange.Cells
If Not IsEmpty(cell.Value) Then
MsgBox Split(cell.Address, "$")(1)
Exit For
End If
Next cell
End Sub
您可以使用以下函数获取该列字母:
Function firstBlankCol(rg As Range) As String
Dim x
If rg(1) = "" Then
x = rg(1).Address
Else
x = rg(1).End(xlToRight).Offset(0, 1).Address
End If
firstBlankCol = Split(x, "$")(1)
End Function
但是,通常更简单的方法是处理列号,并将其用于 Cells
属性.
的列参数
Function firstBlankCol(rg As Range) As Long
Dim x
If rg(1) = "" Then
x = rg(1).Column
Else
x = rg(1).End(xlToRight).Column + 1
End If
firstBlankCol = x
End Function
我需要获取区域中第一个非空白单元格的列字母。这个范围基本上就是一行的一部分就好了。
示例: 范围 = A2:G2 第一个非空白单元格在 F2 单元格上。 需要获取 'F' 并将其存储在 String 变量中。 最有效的方法是什么?
谢谢
试试这个:
Sub columnName()
Dim mainRange As Range, cell As Range, columnName As String
Set mainRange = Range("A2:G2")
'Set mainRange = Selection
For Each cell In mainRange.Cells
If Not IsEmpty(cell.Value) Then
MsgBox Split(cell.Address, "$")(1)
Exit For
End If
Next cell
End Sub
您可以使用以下函数获取该列字母:
Function firstBlankCol(rg As Range) As String
Dim x
If rg(1) = "" Then
x = rg(1).Address
Else
x = rg(1).End(xlToRight).Offset(0, 1).Address
End If
firstBlankCol = Split(x, "$")(1)
End Function
但是,通常更简单的方法是处理列号,并将其用于 Cells
属性.
Function firstBlankCol(rg As Range) As Long
Dim x
If rg(1) = "" Then
x = rg(1).Column
Else
x = rg(1).End(xlToRight).Column + 1
End If
firstBlankCol = x
End Function