【问题标题】:Excel VBA to define specific ranges within large data setsExcel VBA 在大型数据集中定义特定范围
【发布时间】:2020-01-20 18:21:14
【问题描述】:

我有一个不断更新的电子表格,为了跟踪更新,我想在 AL 列中插入一个公式,该列从说明页面中提取一个数字,我希望将该公式转换为一个值,所以它不会不断变化(每次更新工作表时,这个数字都会改变)。

问题是,我不知道如何定义我的范围 - 我的代码可以正常工作,它会粘贴数据、插入公式,然后仅将其转换为值。但它对整个列执行此操作,因为它在 AL1 中定义。我想为上一个最后使用的行定义它,然后粘贴新数据后,我希望它停止在新数据的最后使用的行处。我不太确定我的解释是否有意义,所以如果您有任何问题或想法,请告诉我如何做到这一点!谢谢:)

With ThisWorkbook
  With .Sheets("ABC")
    .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial
    lrFormula = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
    Set Period = .Range("AL1:AL" & lrPPV)
    Period.Formula = "=Instructions!$E$33"
    Period.Value = Period.Value
  End With
End With

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    试试:

    Dim Lastrow As Long
    
        With ThisWorkbook
    
            With .Sheets("ABC")
    
                Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row 'Lastrow before paste
                .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial
                lrFormula = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
                Set Period = .Range("AL" & Lastrow & ":AL" & lrPPV)
                Period.Formula = "=Instructions!$E$33"
                Period.Value = Period.Value
    
            End With
    
        End With
    

    【讨论】:

    • @Leena 我已正确答案,现在尝试并提供反馈。
    • 现在同一行出现应用程序或对象定义错误
    • 检查 lrPPV 的值。
    • 我做到了,我只是再次运行代码,现在同一行中出现另一个语法错误
    • 句号被声明为范围?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多