Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用不带循环的VBA查找列中的第一个空单元格_Vba_Excel - Fatal编程技术网

使用不带循环的VBA查找列中的第一个空单元格

使用不带循环的VBA查找列中的第一个空单元格,vba,excel,Vba,Excel,因此,我在VBA中有两行代码,它们在列的底部找到一个空单元格,然后返回下一个单元格的指针 RowPointer = ThisWorkbook.Sheets("Current").Cells(65000, 4).End(xlUp).Row If ThisWorkbook.Sheets("Current").Cells(RowPointer, 4).Formula <> "" Then RowPointer = RowPointer + 1 问题是这是自下而上的搜索,我需要找到列中的第

因此,我在VBA中有两行代码,它们在列的底部找到一个空单元格,然后返回下一个单元格的指针

RowPointer = ThisWorkbook.Sheets("Current").Cells(65000, 4).End(xlUp).Row
If ThisWorkbook.Sheets("Current").Cells(RowPointer, 4).Formula <> "" Then RowPointer = RowPointer + 1

问题是这是自下而上的搜索,我需要找到列中的第一个空单元格,而不是最后一个。我已经看到了一些解决方法,使用循环遍历列,但是我正在使用的电子表格非常大,循环需要很长时间才能执行。所以我的问题是,有没有一种简单的方法可以从上到下搜索列以找到第一个空单元格?

试试这个我还没有尝试过的方法:

RowPointer = ThisWorkbook.Sheets("Current").Cells(0, 4).End(xlDown ).Row
If ThisWorkbook.Sheets("Current").Cells(RowPointer, 4).Formula <> "" Then RowPointer = RowPointer + 1
也许像

RowPointer=SheetsCurrent.Columns4.SpecialCellsxlCellTypeBlanks.Cells1,1.Row


从手机发帖,所以我希望它能工作

@brettdj是一个复制品吗?如果A1:A10和A12-A20为非空,则第一个空格=A11,最后一个非空=A20,否?@Ioannis是,因为这只是使用Find的一个小变化,尽管我承认我确实链接回了一行中的非空白,而不是一列问题中的空白……调整我链接到的问题中的代码,设置ws=SheetsCurrent,然后设置rng1=ws.Columns4.Find,ws.CellsRows.Count,D,xlFormulas,xlByColumns,xlNext会找到第一个空白结果,但1个特殊单元格应始终与错误检查一起使用2个不会捕获公式空白,尽管我注意到问题的答案是空单元格谢谢反馈!我对1的想法是,在这个特殊情况下,当整个列被填充时,它将返回一个错误。这确实反驳了错误跟踪的必要性,但在实践中,它应该是健壮的。对于2,我也注意到单元格应该是空的,而不是看起来是空的。