使用VBA使用动态单元格引用应用公式。

使用VBA使用动态单元格引用应用公式。,vba,excel,loops,excel-formula,Vba,Excel,Loops,Excel Formula,嗨,我正在尝试根据一个条件将一个公式应用于一系列单元格。但是,如果我在应用公式的单元格中循环,那么它将在不使用动态单元格引用的情况下应用公式。(就像我试图通过单击初始单元格的右下角手动向下拖动公式一样)。我将如何使应用公式中的单元格引用成为动态的?任何帮助都将不胜感激 这是我的密码: Sub OQWDays() Dim oqs As Worksheet Set oqs = Sheets("SQL_IMPORT") For x = 2 To oqs.Cells(Rows.Count,

嗨,我正在尝试根据一个条件将一个公式应用于一系列单元格。但是,如果我在应用公式的单元格中循环,那么它将在不使用动态单元格引用的情况下应用公式。(就像我试图通过单击初始单元格的右下角手动向下拖动公式一样)。我将如何使应用公式中的单元格引用成为动态的?任何帮助都将不胜感激

这是我的密码:

Sub OQWDays()
Dim oqs As Worksheet

Set oqs = Sheets("SQL_IMPORT")

    For x = 2 To oqs.Cells(Rows.Count, "A").End(xlUp).Row

        If oqs.Range("J" & x).Value = ("CBN_Suisse") Then oqs.Range("A" & x).Formula = "=NETWORKDAYS(D2,PUBLIC_HOLIDAYS!$G$3,PUBLIC_HOLIDAYS!$E$44:$E$61)"

    Next x
End Sub
我想你是这个意思。从字符串中取出2并替换为x

Sub OQWDays()

Dim oqs As Worksheet

Set oqs = Sheets("SQL_IMPORT")

For x = 2 To oqs.Cells(Rows.Count, "A").End(xlUp).Row
    If oqs.Range("J" & x).Value = "CBN_Suisse" Then
        oqs.Range("A" & x).Formula = "=NETWORKDAYS(D" & x & ",PUBLIC_HOLIDAYS!$G$3,PUBLIC_HOLIDAYS!$E$44:$E$61)"
    End If
Next x

End Sub

所以你想把
D2
改成
Dx
其中x是行号?用
D“&x&”替换
D2,
谢谢,Scott Craner发布了同样的解决方案,效果很好,谢谢大家。很高兴它成功了。您可能还想考虑使用AutoFielter来避免循环,特别是如果您有很多行。只是好奇,您如何在没有循环和自动筛选的情况下运行此过程?你能给我看一下或给我指一本解释它的指南/教程吗?我没有听说过自动过滤的方法。你最好的选择是诚实地向谷歌和/或咨询VBA帮助。有很多关于如何过滤数据的例子,例如看这个问题