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

我在excel工作。 我需要能够find从列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 

您的查询: –

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

没有回答你的代码wks2.Cells(20, wks2.Columns.Count).End(xlToLeft).Column 。 这是一个微妙但显着的差异。

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

下面的代码为我做了,并且列引用作为一个字母。

 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 

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

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

我不确定它的独立运作情况如何。 我使用的function是:

 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 

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