定义变量返回运行-time 1004
Defined Variable Returning Run-time 1004
我在使用以下代码时收到 运行 次 1004 错误 "Application-defined or object-defined error":
Sub GetPCData()
'Get PC response ratios
PCanalytes = Array("Furosemide", "Caffeine", "Ketoprofen", "Phenylbutazone", "Flunixin")
PCanalytePositions = Array("J20", "K20", "L20", "M20", "N20")
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("H8").End(xlDown)
Set copyToRange = targetSheet.Range(PCanalytePositions(i))
Set copyFromRange = sourceSheet.Range("H8", Y)
copyToRange.Value = Application.WorksheetFunction.Average(copyFromRange)
copyToRange.PasteSpecial xlPasteValues
Next i
End Sub
我需要使用两个单元格 H8 中的值和定义数组中定义为 Y 的变量来计算平均值。所以我需要两个独立单元格的平均值,其中一个是一个变量,该变量将由使用此宏处理的数据集定义。抱歉,如果这是一个简单的修复,我还没有找到解决方法。
看看这是否可行,因为我已经对您要实现的目标做出了假设。
Sub GetPCData()
Dim PCanalytes, PCanalytePositions
'Get PC response ratios
PCanalytes = Array("Furosemide", "Caffeine", "Ketoprofen", "Phenylbutazone", "Flunixin")
PCanalytePositions = Array("J20", "K20", "L20", "M20", "N20")
Set SQWorkbook = Application.ActiveWorkbook
Dim sourceSheet As Worksheet, targetSheet As Worksheet 'note you need to add the type for each declaration
Dim copyFromRange As Range, copyToRange As Range 'ditto
Dim Y As Range
Set targetSheet = ThisWorkbook.Sheets("QC data")
For i = 0 To SQWorkbook.Worksheets.Count
Set sourceSheet = SQWorkbook.Worksheets(PCanalytes(i))
Set copyToRange = targetSheet.Range(PCanalytePositions(i))
Set copyFromRange = sourceSheet.Range("H8", sourceSheet.Range("H8").End(xlDown))
With copyFromRange
copyToRange.Value = Application.WorksheetFunction.Average(.Cells(1), .Cells(.Cells.Count))
End With
Next i
End Sub
我在使用以下代码时收到 运行 次 1004 错误 "Application-defined or object-defined error":
Sub GetPCData()
'Get PC response ratios
PCanalytes = Array("Furosemide", "Caffeine", "Ketoprofen", "Phenylbutazone", "Flunixin")
PCanalytePositions = Array("J20", "K20", "L20", "M20", "N20")
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("H8").End(xlDown)
Set copyToRange = targetSheet.Range(PCanalytePositions(i))
Set copyFromRange = sourceSheet.Range("H8", Y)
copyToRange.Value = Application.WorksheetFunction.Average(copyFromRange)
copyToRange.PasteSpecial xlPasteValues
Next i
End Sub
我需要使用两个单元格 H8 中的值和定义数组中定义为 Y 的变量来计算平均值。所以我需要两个独立单元格的平均值,其中一个是一个变量,该变量将由使用此宏处理的数据集定义。抱歉,如果这是一个简单的修复,我还没有找到解决方法。
看看这是否可行,因为我已经对您要实现的目标做出了假设。
Sub GetPCData()
Dim PCanalytes, PCanalytePositions
'Get PC response ratios
PCanalytes = Array("Furosemide", "Caffeine", "Ketoprofen", "Phenylbutazone", "Flunixin")
PCanalytePositions = Array("J20", "K20", "L20", "M20", "N20")
Set SQWorkbook = Application.ActiveWorkbook
Dim sourceSheet As Worksheet, targetSheet As Worksheet 'note you need to add the type for each declaration
Dim copyFromRange As Range, copyToRange As Range 'ditto
Dim Y As Range
Set targetSheet = ThisWorkbook.Sheets("QC data")
For i = 0 To SQWorkbook.Worksheets.Count
Set sourceSheet = SQWorkbook.Worksheets(PCanalytes(i))
Set copyToRange = targetSheet.Range(PCanalytePositions(i))
Set copyFromRange = sourceSheet.Range("H8", sourceSheet.Range("H8").End(xlDown))
With copyFromRange
copyToRange.Value = Application.WorksheetFunction.Average(.Cells(1), .Cells(.Cells.Count))
End With
Next i
End Sub