【问题标题】:Defined Variable as a reference in an Offset Range定义变量作为偏移范围中的参考
【发布时间】:2018-01-31 20:53:52
【问题描述】:

我在用 VBA 编写代码时遇到了麻烦,当其中一个单元格是变量时,该代码允许我描述一系列不连续的单元格。当我运行这行代码时,我在以Range(copyToRange) = Application.WorksheetFunction.Average(copyFromRange) 开头的行出现错误。抱歉,如果这是一个简单的解决方法,我整天都在用头撞墙:

Sub GetPCData()

'Get PC response ratios

PCanalytes = Array("Furosemide", "Caffeine", "Ketoprofen", "Phenylbutazone", "Flunixin")
PCanalytePositions = Array("J32", "J33", "J34", "J35", "J36")

Set SQWorkbook = Application.ActiveWorkbook

Dim sourceSheet, targetSheet As Worksheet
Dim copyFromRange, copyToRange As Range
Dim Y As Range

Set targetSheet = ThisWorkbook.Sheets("QC data")

For i = 0 To SQWorkbook.Worksheets.Count
    Set sourceSheet = SQWorkbook.Worksheets(PCanalytes(i))
    Set Y = sourceSheet.Range("A7").End(xlDown)
    Set copyToRange = targetSheet.Range(PCanalytePositions(i))
    Set copyFromRange = sourceSheet.Range(("H8"), Y.Offset(0, 7))
    Range(copyToRange) = Application.WorksheetFunction.Average(copyFromRange)
Next i

End Sub

【问题讨论】:

    标签: vba variables offset


    【解决方案1】:

    语法错误!

    试试这个:

    copyToRange.Value = Application.WorksheetFunction.Average(copyFromRange)
    

    为什么?,因为您告诉 Excel“copyToRange”已经是一个 RANGE:

    Dim copyFromRange, copyToRange As Range
    

    希望对您有所帮助。

    【讨论】:

    • 感谢@r_student,解决了我遇到的错误。现在我意识到单元格引用一定是有缺陷的,因为我在这个范围内得到的平均值不是我预期的。我要做的是创建一个单元格引用,该引用在同一行中基于变量起始行偏移 7 列,因此在代码中定义了 Y。我错过了什么?
    • 我知道它现在是什么,但我不知道如何解决它。我需要能够描述两个离散的单元格来计算平均值(在本例中为“H8”和 Y 左侧的 7 列),并且我编写的所有内容都包括它们之间的所有单元格。跨度>
    • 你能给我举个例子来获得平均值吗?正如你所说的 H8 和左侧 7 列 等于 Range("H8:A8") 对吗?
    • 我需要能够平均 H8 的内容和 H 列中的最后一个单元格(使用 xlDown)。只是那两个没有来自 H9-Hn 的单元格内容的单元格。使用“Set copyFromRange = sourceSheet.Range(H8:Y)”会导致语法错误
    • 检查Y 的地址以查看您尝试set 的Range 是否为copyFromRange 有效的Range , 也许你应该尝试使用 cells(rows,columns) 方法,如果你想平均 H8 和 H 列中最后一个单元格的内容,这将是语法:Range("H8", Range("H8").End(xlDown))
    猜你喜欢
    • 1970-01-01
    • 2020-11-06
    • 2012-09-14
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    • 2020-08-17
    相关资源
    最近更新 更多