我正在研究一个项目,目前需要在Excel中连续查找文本单元格之后的第一个空单元格。为了澄清,让我用这个截图向你解释我在寻找什么
我想写一个代码为我返回,例如在第20行的情况下,单元格E20的列数,即使第一个空单元格是A20,但就像我说的那样,我希望第一个空在最后一个“非空”之后的单元格juste。 对于第21行,结果将是C21,第22行将是F22,然后你去
这是我写的代码,但由于某种原因它不起作用,请帮忙。
Function emptyCell(ws As Worksheet, ligne As Integer)
Dim m, p, n As Integer
Dim suite(700) As Integer
For k = 0 To 700
suite(k) = 0
Next
emptyCell = 0
i = 1
Do Until suite(i) = 0 And suite(i - 1) = 1
If ws.Cells(ligne, i) <> "" Then
suite(i) = 1
End If
i = i + 1
emptyCell = emptyCell + 1
Loop
End Function
Sub test()
Dim d As Integer
empty_cell = emptyCell(Sheets("tmp"), 2)
MsgBox (empty_cell)
End Sub
我的代码的逻辑是为空单元格分配0而在另一个caase中分配1,运行测试以找到将出现在我的数组中的第一个1-0并从此“1”的顺序获取列顺序“
我知道我不是那么清楚,因为我不想让它成为一个长篇大论,英语不是我的第一语言。
提前致谢
答案 0 :(得分:1)
如果你想在最后一个非空单元格之后得到第一个空单元格,那么为什么不试试这样呢?
Function emptyCell(ws As Worksheet, Row As Long) As Range
Set emptyCell = ws.Cells(Row, ws.Columns.Count).End(xlToLeft).Offset(, 1)
End Function
Sub Test()
Dim empty_cell As Range
Set empty_cell = emptyCell(Sheets("tmp"), 20)
MsgBox empty_cell.Address
End Sub