我正在嘗試用特定值填充一列。我愚蠢地使用了 xlDown 函式,導致 Excel 崩潰。只要A 列中的單元格不為空,我就希望填充 B 列的單元格。
我目前的想法是宣告一個變數并用任何其他列的長度值對其進行初始化,然后將該變數設定為范圍的末尾,但我認為使用回圈會是更好的選擇嗎?
Sub fillColumn()
Dim myrange as Range
Set myrange = Columns(1)
For Each cell In myrange.Cells
Do While cell <> vbNullString
Cell.Offset(0,1).Value = "Yes"
Next
Loop
End Sub()
不過,我無法弄清楚如何do-while
結合回圈來處理回圈for
,因此我將不勝感激任何提示。
uj5u.com熱心網友回復:
請使用下一種方式,不需要任何迭代:
Sub fillBforNotEmptyA()
Dim sh As Worksheet, lastR As Long, rngA As Range
Set sh = ActiveSheet 'use here the sheet you need
lastR = sh.Range("A" & sh.rows.count).End(xlUp).row 'last row in A:A
Set rngA = sh.Range("A2:A" & lastR) 'the reference range
sh.Range("B2:B" & lastR).Value2 = Evaluate("IF(" & _
rngA.address & "<>"""",""Yes"","""")")
End Sub
uj5u.com熱心網友回復:
怎么樣:
在特定列中查找第一行
在特定列中查找最后一行
for i = firstrow to lastrow if cells(i, yourColumn).value2 <> vbnullstring then cells(i, yourColumn 1).value2="yes" end if next i
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/536351.html
標籤:擅长VBA循环范围
上一篇:使用VBA洗掉范圍內的圖片的問題
下一篇:過濾和分組重復名稱串列