首页 > 解决方案 > Do While freq.Value <> " " 'if freq in range >< empty --> ERROR BUG

问题描述

我正在为一名研究人员实习时正在编写这个 excel 文档,并且无法将其弄清楚

Sub Boucle()

    Dim freq As Range
    Set freq = Range("D10:D230")

    Do While freq.Value <> " " 'if freq in range >< empty --> ERROR BUG HERE

        freq.Offset(0, 1).Copy 'copy value of adjacent cell 
        freq.Offset(freq.Value + 1, 18).PasteSpecial xlPasteValues 'and paste to specific value +1 into table I created

    Loop
End Sub

VBA 说运行时错误 13,这很奇怪,因为当我使用“对于每个单元格”执行相同的代码时,它可以工作,但会在第一个 freq.Value + 1 处粘贴所有值

谢谢你的帮助!!!

标签: excelvba

解决方案


Sub Boucle()
    Dim freq As Range
    Set freq = Range("D10:D25")
    Set Masking_threshold = Cells(1, 21) '= column in which I wanted to paste

    For Each freq In Range("D10:D25")
        If freq.Value <> " " Then
              freq.Offset(0, 1).Copy
              Masking_threshold.Offset(freq.Value, 0).PasteSpecial xlPasteValues
        End If
    Next

End Sub

不知何故,对于这个参数,它使用相同的变量(范围><“”)工作得很好。


推荐阅读