0

我需要获取范围的第一个非空白单元格的列字母。这个范围基本上是一行的一部分。

示例:范围 = A2:G2 第一个非空白单元格位于 F2 单元格上。需要获取 'F' 并将其存储在 String 变量中。得到这个的最有效方法是什么?

谢谢

4

2 回答 2

2

试试这个:

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
于 2021-01-15T17:06:23.030 回答
0

您可以使用以下函数获取该列字母:

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

于 2021-01-15T17:54:16.243 回答