增加多个工作表的值

时间:2018-04-03 20:45:08

标签: excel vba excel-vba

有一个excel工作表,其中有几个工作表,这些工作表都标记不同,根本没有模式(即; Sheet1,Sheet2,Sheet3等) 在单元格B2的第一个工作表中,我的值为90,并希望其他所有工作表自动将值增加1。 希望第二个工作表在91上的值为B2,依此类推, 我知道我可以繁琐地添加=SUM('WorksheetName'!B2 +1)来执行此操作,但需要永远,因为我必须手动键入每个实例的工作表名称 有什么方法可以添加一些VBA吗?或另一个公式?

为了帮助澄清, 我的第一张工作表标记为101,并且在单元格B2上的值为90 enter image description here

2 个答案:

答案 0 :(得分:1)

如何完成任务的另一个例子。添加了对原始工作表的检查

Sub SetWorksheetValues()
Dim ws As Worksheet
Dim firstWS As Worksheet
Dim cValue As Long
Dim counter As Long
'set the counter to 2
counter = 2
'set the first worksheet that has our beginning value
Set firstWS = ThisWorkbook.Worksheets("101")
'get the value and increment by 1
cValue = firstWS.Range("B1").Value + 1
    For Each ws In ThisWorkbook.Worksheets
        'skip the worksheet with our starting value
        If ws.Name <> firstWS.Name Then
            'set the cell value
            ws.Range("B" & counter).Value = cValue
            'increment each value by 1
            cValue = cValue + 1
            counter = counter + 1
        End If
    Next ws
End Sub

测试它

创建工作簿并在其中添加模块。 运行以下宏

Sub AddLotsOfWorksheets()
Dim i As Long
Dim c As Long
Dim ws As Worksheet
c = 101
    For i = 1 To 250
        Set ws = ThisWorkbook.Worksheets.Add(Before:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count))
        ws.Name = CStr(c)
        c = c + 1
    Next i
End Sub

在表101中的B1中添加1(或90)

运行SetWorksheetValues

如果输入1,则单个350单元格B250的值应为250 要么 339如果输入90.

答案 1 :(得分:0)

如果我理解正确,这应该做你想要的。

Sub x()

Dim i As Long, n As Long

n = 90

For i = 1 To Worksheets.Count
    Sheets(i).Range("B1").Offset(i - 1).Value = n + i - 1
Next i

End Sub