Tôi sử dụng phương pháp này ở chế độ ngay lập tức khi tôi không muốn thêm mã vào trang tính.
strX="": _
For Each cllX in Range(ActiveCell, Cells(Cells.SpecialCells(xlCellTypeLastCell).Row, ActiveCell.Column)): _
strX=strX & iif(cllX.text="","",iif(strX="","",",")& cllX.address): _
Next: _
Range(strX).Select
Nhưng trong khi trực quan, nó chỉ hoạt động với tối đa 35 đến 50 ô. Sau đó, VBA trả về một lỗi 1004.
Run-time error '1004':
Application-defined or object-defined error
Nó là mạnh mẽ hơn để sử dụng Liên minh chức năng.
Set rngX=ActiveCell: _
For Each cllX in Range(ActiveCell, Cells(cells.SpecialCells(xlCellTypeLastCell).Row, ActiveCell.Column)): _
Set rngX=iif(cllX.text="", rngX, Union(rngX, cllX)): _
Next: _
rngX.Select
Thật ngắn và trực quan, tôi chỉ vứt nó đi sau mỗi lần sử dụng.
Nguồn
2015-04-10 13:16:35
là u chắc chắn "Đối với mỗi vòng nhanh hơn phương pháp For i = 1 to x"? tôi nghĩ nếu không https://stackoverflow.com/questions/365615/in-net-which-loop-runs-faster-for-or-foreach – curious
'Đối với mỗi' là nhanh hơn cho một phạm vi,' cho I' nhanh hơn cho looping thông qua mảng biến thể – brettdj
o ok. thanx để làm rõ – curious