定义变量作为偏移范围中的参考

时间:2018-01-31 20:53:53

标签: vba variables offset

我在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

1 个答案:

答案 0 :(得分:0)

语法不正确!

试试这个:

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

为什么?因为你在告诉Excel" copyToRange"已经是一个范围:

Dim copyFromRange, copyToRange As Range

希望这对你有所帮助。