excel 使用相对于另一列的范围/长度向下填充列

ct3nt3jp  于 2022-11-26  发布在  其他
关注(0)|答案(2)|浏览(283)

我试图用一个特定的值向下填充一列。我愚蠢地使用了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循环,所以我会感谢任何提示。

kcrjzv8t

kcrjzv8t1#

请使用下一种方法,不需要任何迭代:

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 = sh.Evaluate("IF(" & _
                    rngA.address & "<>"""",""Yes"","""")")
End Sub
brgchamk

brgchamk2#

怎么样:

  • 在特定列中查找第一行
  • 在特定列中查找最后一行
for i = firstrow to lastrow
  if cells(i, yourColumn).value2 <> vbnullstring then
     cells(i, yourColumn+1).value2="yes"
  end if
next i

相关问题