首页 文章

VBA查询excel公式中的动态范围

提问于
浏览
0

该公式通过此VBA代码给出excel中的值,但下面公式中的范围是修复:

Private Sub Formula update()
Dim rng As Range
Dim rng1 As Range

    Set rng = Range("B1").End(xlDown)
rng.Offset(1, 0).Formula = "=TEXT(RIGHT(**B9**,9)+3,""DDMMMYYYY"")&"" - ""&TEXT(RIGHT(*B9*,9)+7,""DDMMMYYYY"")"
rng.Offset(1, -1).Formula = "=CONCATENATE(""WK-"",IF((WEEKNUM(LEFT(**B10**,9),2)-40)<=0,(WEEKNUM(LEFT(**B10**,9),2)-40)+53,WEEKNUM(LEFT(**B10**,9),2)-40))"

End Sub

但是在下面提到的代码中,我需要公式下的动态范围 .

有人可以解决它 .

Private Sub FormulaValue_paste()
Dim rng As Range
Dim rng1 As Range

    Set rng = Range("B1").End(xlDown)
rng.Offset(1, 0).Formula = "=TEXT(RIGHT(rng,9)+3,""DDMMMYYYY"")&"" - ""&TEXT(RIGHT(rng,9)+7,""DDMMMYYYY"")"
        Set rng1 = rng.Offset(1, 0)
rng.Offset(1, -1).Formula = "=CONCATENATE(""WK-"",IF((WEEKNUM(LEFT(rng1,9),2)-40)<=0,(WEEKNUM(LEFT(rng1,9),2)-40)+53,WEEKNUM(LEFT(rng1,9),2)-40))"

End Sub

在此先感谢您的支持 .

1 回答

  • 0

    我猜,但如果你的意思是你想让公式引用rng1,也许就是这个 . 使用范围的Address属性并将其从引号中删除 .

    rng.Offset(1, -1).Formula = "=CONCATENATE(""WK-"",IF((WEEKNUM(LEFT(" & rng1.address & ",9),2)-40)<=0,(WEEKNUM(LEFT(" & rng1.address & ",9),2)-40)+53,WEEKNUM(LEFT(" & rng1.address & ",9),2)-40))"
    

相关问题