2

Я хочу скопировать один лист на несколько листов в одной книге с макросами, я знаю, как это сделать, но у меня еще есть вопрос.

Я использую формулу:

Sub Button3_Click()
Dim x As Integer
Dim y As Integer
x = InputBox("How many copies you want?")
For numtimes = 1 To x
ActiveWorkbook.Sheets("Sheet1").Copy _
After:=ActiveWorkbook.Sheets("Sheet1")
Next
End Sub

Допустим, я копирую один лист на новые 5 листов. Название листов будет таким:

Sheet 1 | Sheet 1 (2) | Sheet 1 (3) | Sheet 1 (4) | Sheet 1 (5) | Sheet 1 (6) 

Что я хочу это:

the formula in the "Sheet 1 (2)" Cell A1 is "='Sheet 1'A1+1" and 
the formula in the "Sheet 1 (3) cell A1 is "='Sheet 1 (2)'A1+1: and 
the formula in the "Sheet 1 (4) cell A1 is "='Sheet 1 (3)'A1+1: and
the formula in the "Sheet 1 (5) cell A1 is "='Sheet 1 (4)'A1+1: and

Или какова бы ни была формула, я просто хочу, чтобы ячейка A1 следующего листа ссылалась на число с +1 от предыдущего листа. (Так же, как страницы).

Я хочу знать, как это сделать, особенно в Excel 2003?

2 ответа2

0

На Sheet 1 (2) в A1 введите

=SUM(Sheet 1!A1,1)

И соответственно на другие листы.

Для LibreOffice это будет

=SUM(Sheet 1.A1,1)
0

Попробуйте это дополнение к вашему коду:

Sub Button3_Click()
Dim x As Integer
Dim y As Integer, tmpSheet As Worksheet
x = InputBox("How many copies you want?")
For numtimes = 1 To x
    ActiveWorkbook.Sheets("Sheet1").Copy _
    After:=ActiveWorkbook.Sheets("Sheet1")
Next
For y = 2 To x + 1
    Set tmpSheet = ActiveWorkbook.Sheets("Sheet1 (" & y & ")")
    If y = 2 Then
        tmpSheet.Range("A1").Formula = "='Sheet1'!A1 + 1"
    Else
        tmpSheet.Range("A1").Formula = "='Sheet1 (" & y - 1 & ")'!A1 + 1"
    End If
Next y
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .