我在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
答案 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
我知道这很有效。使用你喜欢的任何一个!