我正在使用 VBA 编写宏,它完全按照我的意愿工作,只是我希望我的公式循环遍历工作表而不是使用“SAFO-1”上的数据,“SAFO-1”指的是鱼 Salvelinus fontinalis (SAFO)。我有很多鱼种(例如,Morone saxatilis (MOSA)),如果我能参考表号而不是它们的名字,那会更实用。不幸的是,我不决定工作表名称,它们必须保持原样,因为我们正在为每个样本使用唯一名称的共享项目工作。项目之间的工作表名称更改,我希望能够在所有项目中使用我的代码。这是我当前的代码:
Sub Mean()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim Sheet As Integer
k = 4
i = Application.Sheets.Count
For Sheet = 2 To i
Worksheets(Sheet).Select
j = 3
Do While activeCell.Value <> "0"
Range("A" & j).Select
If activeCell.Value = "0" Then
Range("A1").Copy
Worksheets("Mean").Range("A" & Sheet + 1).PasteSpecial Paste:=xlPasteValues
Worksheets("Mean").Range("B" & Sheet + 1).Formula = "=(('SAFO-1'!B80)-('SAFO-1'!B75))"
Worksheets("Mean").Range("C" & Sheet + 1).Formula = "=(('SAFO-1'!C80)-('SAFO-1'!C75))"
For k = 4 To 41
Worksheets("Mean").Cells(Sheet + 1,k).FormulaR1C1 = "=AVERAGE('SAFO-1'!R" & j + 10 & "C" & k & ":R" & j - 9 & "C" & k & ")"
Next k
Else
j = j + 1
End If
Loop
Next Sheet
Range("B1:AP2").Copy Worksheets("Mean").Range("A1")
Worksheets("Mean").Select
End Sub
我的想法是用“Sheet1”替换“SAFO-1”,以便最终能够编写如下内容:
Worksheets("Mean").Cells(Sheet + 1,k).FormulaR1C1 = "=AVERAGE('Sheet "& Sheet")'!R" & j + 10 & "C" & k & ":R" & j - 9 & "C" & k & ")"
提前致谢!
威廉·福廷