我正在尝试在一个工作簿的多个工作表中添加相同的单元格。一些参数:
我尝试使用谷歌搜索,它总是有一个简单的求和公式。我希望专门编写一个VBA函数来实现它。
Function AddAcrossSheets(rng As Range) As Variant
valRow = rng.Row
valCol = rng.Column
For x = 1 To Sheets.Count
AddAcrossSheets = Sheets(x).Cells(valRow, valCol).Value + AddAcrossSheets
Next x
End Function
答案 0 :(得分:0)
请记住,始终在代码的顶部添加Option Explicit
。这将迫使您声明所有变量,从而使您免于各种麻烦。
这就是我要做的
Sub addAcrossSheets()
Dim sht As Worksheet
Dim totalSum As Double
totalSum = 0 'initialize the sum
For Each sht In ThisWorkbook.Worksheets 'loop through the collection of worksheets
totalSum = totalSum + sht.Range("A4") 'update the sum
Next sht
Debug.Print totalSum 'the result is displayed in your immediate window
End Sub
现在,您可能要从总和中排除一些工作表。您可以这样做:
For Each sht In ThisWorkbook.Worksheets 'loop through the collection of worksheets
If sht.Name <> "Something" And sht.Name <> "Something else" Then 'exclude worksheets from the sum
totalSum = totalSum + sht.Range("A4") 'update the sum
End If
Next sht
答案 1 :(得分:-1)
如果位置(A4)始终相同,则只需将其硬编码即可。
valueFromA4 = Cells(4, 1).Value
For i = 2 To Sheets.Count
Sheets(i).Cells(4, 1).Value = valueFromA4
Next i
我建议您在for循环中使用i,这只是一个约定。大多数循环以i = 0开头,但是Excel工作表以1开始计数,因此第一张工作表之后的工作表为2。