【问题标题】:Dynamic variable in VBAVBA中的动态变量
【发布时间】:2018-01-08 00:46:06
【问题描述】:

我有这个 VBA 脚本,但我不知道如何使粗体部分动态化,以便每个 i 的公式为 =StripAccent(C2)=StripAccent(C3) 等等。

For i = 2 To 10  
    Cells(i, 5) = "=StripAccent(Ci)"
Next i

我读到了双引号,但它在那里不起作用。

【问题讨论】:

    标签: vba excel dynamic formula quotes


    【解决方案1】:

    这是一个可能的解决方案:

    Public Sub TestMe()
        Dim i    As Long
        For i = 2 To 10
            Cells(i, 5) = "=StripAccent(C" & i & ")"
        Next i
    End Sub
    

    另一种是使用Cells(i,3)

    编辑:如果您在此处使用自定义函数 - Converting Special Characters into alphabet,那么类似的方法也可以工作(但不能作为公式):

    Public Sub TestMe()
        Dim i    As Long
        For i = 2 To 10
            Cells(i, 5) = StripAccent(Cells(i,3))
        Next i
    End Sub
    

    【讨论】:

      【解决方案2】:

      在您的情况下,您不需要循环,您可以直接将Formula 添加到您的整个范围内,如下所示:

      Range(Cells(2, 5), Cells(10, 5)).Formula = "=StripAccent(C2)"
      

      或者,甚至“更干净”:

      Range("E2:E10").Formula = "=StripAccent(C2)"
      

      【讨论】:

      • @Vityata 他在哪里提到他需要一个循环?我认为他希望根据“E”列中的行号拖动公式
      • 在某种程度上似乎是合法的。
      【解决方案3】:
      For i = 2 To 10  
          Cells(i, 5).Formula = "=StripAccent(C" & i & ")"
      Next i
      

      【讨论】:

        猜你喜欢
        • 2021-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-15
        • 2023-01-19
        • 2022-01-16
        • 1970-01-01
        相关资源
        最近更新 更多