Excel VBA查找行中第一个空白单元格的列名称

时间:2016-08-17 13:47:04

标签: excel vba excel-vba

我在excel工作。我需要能够从A列开始在第20行找到第一个空白/空单元格。返回值应该是实际的列名称。 AB,AAD等。我要做的是将一个值粘贴到这个单元格中。这是它的图片,该行以绿色突出显示。

Dim wkb As Excel.Workbook
Dim wks2 As Excel.Worksheet
Dim strMSG As String
Dim LastRow As Long

Set wkb2 = ThisWorkbook
Set wks2 = wkb2.Sheets("Daily")
columnNumber = wks2.Cells(20, wks2.Columns.Count).End(xlToLeft).Column

2 个答案:

答案 0 :(得分:1)

您的查询: -

  

找到行中的第一个空白/空单元格

您的代码wks2.Cells(20, wks2.Columns.Count).End(xlToLeft).Column未回答。这是一个微妙但重要的区别。

.End(xlToLeft).End(xlUp)通常用于查找行/列中 last 使用的单元格,这是一项常见要求。要查找第一个使用过的单元格,您要么检查每个单元格,要么根据范围内的所有空白单元格创建范围,并查看该范围内的第一个项目。

以下代码为我做了,并将列引用包含在字母中。

Public Sub Sample()
Dim wkb2        As Excel.Workbook
Dim wks2        As Excel.Worksheet
Dim strMSG      As String
Dim StrColumn   As String
Set wkb2 = ThisWorkbook
    Set wks2 = wkb2.Worksheets("Daily")
        StrColumn = Replace(wks2.Range("20:20").SpecialCells(xlCellTypeBlanks).Cells(1, 1).Address, "$", "")
        StrColumn = Left(StrColumn, Len(StrColumn) - 2)
    Set wks2 = Nothing
Set wkb2 = Nothing
End Sub

答案 1 :(得分:0)

我有一个将列号转换为字母的函数,但我会尝试将其转换为简单的代码。

dim colLetter as string
Dim vArr
vArr = Split(Cells(1, columnNumber).address(True, False), "$")
colLetter = vArr(0)

我不确定它的独立运作情况。我使用的功能是:

Public Function Col_Letter(lngCol As Long) As String

Dim vArr
vArr = Split(Cells(1, lngCol).address(True, False), "$")
Col_Letter = vArr(0)

End Function

我知道这很有效。使用你喜欢的任何一个!