【问题标题】:VBA Dynamic Range Formula NOT Set in RangeVBA 动态范围公式未在范围内设置
【发布时间】:2017-12-21 18:39:03
【问题描述】:

我的代码有问题。我使用用户窗体运行一个简单的 VBA 代码,并在其中一个工作簿的工作表中运行我在特定列的特定范围内的公式。不知何故,我不知道为什么,代码在这条线上运行没有任何错误,但是当代码结束时,单元格保持原样,没有公式。如果有人可以在 AC 和 AD 列中分析我的问题,我将非常感激。

这里是具体的代码行,问题只是 AC、AD 列:

    VLR = MainWB.Worksheets(2).Cells(Rows.Count, "A").End(xlUp).Row

With MainWB.Worksheets(5)
    UniqueLRow = .Cells(Rows.Count, "E").End(xlUp).Row
End With

'Column AC
With MainWB.Worksheets(2)
    .Range("AC2").Activate
    .Range("AC2:AC" & VLR).FormulaR1C1 = "=IF(COUNTIF(Unique!R2C5:R " & UniqueLRow & " C5,visual!RC[-2]),1,"""")"
End With

HourLR = MainWB.Worksheets(6).Cells(Rows.Count, "E").End(xlUp).Row

'Column AD
With MainWB.Worksheets(2)
    .Range("AD2:AD" & VLR).FormulaR1C1 = "=IF(COUNTIF(HourCommissions!R2C5:R " & HourLR & " C5,visual!RC[-3])>0,1,"""")"
End With

【问题讨论】:

  • 您是否尝试使用F8 调试代码并单步执行。最好添加 .select 以查看它正在执行的操作。
  • 您在描述中显示的代码之前是否使用了On Error Resume Next

标签: vba excel


【解决方案1】:

试一试,看看是否能解决您的问题...

With MainWB.Worksheets(2)
    .Range("AC2", "AC" & VLR).FormulaR1C1 = "=IF(COUNTIF(Unique!R2C5:R" & UniqueLRow & "C5,visual!RC[-2]),1,"""")"
End With

【讨论】:

    【解决方案2】:

    这里;

    .Range("AD2").AutoFill Destination:=Range("AB2:AB" & VLR), Type:=xlFillDefault
    

    目标是活动工作表中的范围。只要它是 Worksheet(2),它就会起作用。你想要这个还是忘记 Range 之前的点?

    【讨论】:

    • 是的,我在代码开头的错误恢复下使用一次。删除它?
    • 如果它仍然不起作用,请在错误恢复下删除。你至少会知道哪里出错了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多