在Excel VBA中,你可以通过以下代码来获取A列第1个到最后一个非空白单元格的位置: ```vba Sub FindLastNonBlankCell() Dim ws As Worksheet Dim rng As Range Dim lastRow As Long '设定你要操作的工作表 Set ws = ActiveSheet '或者指定具体工作表:Set ws = ThisWorkbook.Sheets("Sheet1") With ws '找到A列最后一个非空值的行号 lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row '设定范围为从A1到找到的最后一行 Set rng = .Range("A1:A" & lastRow) '进一步筛选出非空白且非公式产生的空白单元格 Set rng = rng.SpecialCells(xlCellTypeConstants) '这里会筛选出所有常量(包括数值和文本),但不包含公式或空白单元格 '若需要排除空白单元格,可以再进一步筛选 Set rng = rng.SpecialCells(xlCellTypeConstants, xlTextValues) '这里只会筛选出非空白文本单元格 End With '现在rng就是你所需要的范围 MsgBox "The range of the first to the last non-blank cell in column A is: " & rng.Address(0, 0) End Sub ``` 以上代码首先找到A列最后一个非空单元格的行号,然后通过`.SpecialCells`方法进一步筛选出非空白且非公式产生的空白单元格。注意,`.SpecialCells(xlCellTypeConstants)`会筛选出所有常量单元格(包括数字和文本),如果仅需要文本非空白单元格,请使用`.SpecialCells(xlCellTypeConstants, xlTextValues)`。 如果你的非空白单元格也包括了含有数值的单元格,并且你希望一并算入,那么可能需要你自己根据实际情况调整筛选逻辑。 [2024-01-12 16:50:12 | AI写代码神器 | 413点数解答]