Страницы: 1
RSS
Обновление всей книги (связь с другим источником)
 
Здравствуйте!
В книге есть несколько листов, которые при исполнении макроса

Связывается с другим источником, закачивает данные в книгу, обновляет график. Как сделать чтобы обновление происходило во всей книге, а не в каждом листе по отдельности?
Заранее, спасибо!
Код
Sub ClickMeTwice()
'
' ClickMeTwice Macro
'
' Keyboard Shortcut: Ctrl+e
'
Dim rngNrm As Range

    If ActiveSheet.Range("A24").Value = "" Then
     ActiveSheet.Range("A24") = ActiveSheet.Range("A25")
     ActiveSheet.Range("A25").Value = ActiveSheet.Range("A25").Value + 1
    Else
     ActiveSheet.Range("A25").Value = ActiveSheet.Range("A25").Value - 1
     ActiveSheet.Range("A24").Value = ""
     For i = 0 To 5
       Set rngNrm = ActiveSheet.Range("B29").Offset(0, i * 3)
       While rngNrm.Offset(-1, 0).Value > 0
         If rngNrm.Offset(0, 1) = 0 Then
           rngNrm.Offset(0, 1).FormulaR1C1 = "=(RC[-1]-R28C[-1])/R28C[-1]"
           rngNrm.Offset(0, 1).NumberFormat = "0.00%"
         End If
         ' this is new part beginning
         'If ActiveSheet.Range("B26").Offset(0, (1 + i) * 3) = "Barrier" Then
         '  rngNrm.Offset(1, 3).FormulaR1C1 = "=R[-1]C"
         '  rngNrm.Offset(1, 3).NumberFormat = "0.00%"
         'End If
         ' this is new part end
         Set rngNrm = rngNrm.Offset(1, 0)
       Wend
     Next
    End If    
End Sub
Изменено: mifed - 04.03.2015 16:33:47
 
Странная у Вас постановка вопроса. "Во всей книге" - это на всех листах имеется ввиду? Поставьте процедуру в цикл и выполняйте на каждом листе.
 
Организовать цикл по листа? Может так
Код
Sub ClickMeTwice() '
Dim rngNrm As Range
For Each sh In Worksheets
    With sh
        If .Range("A24").Value = "" Then
            .Range("A24") = .Range("A25")
            .Range("A25").Value = .Range("A25").Value + 1
        Else
            .Range("A25").Value = .Range("A25").Value - 1
            .Range("A24").Value = ""
                For i = 0 To 5
                    Set rngNrm = .Range("B29").Offset(0, i * 3)
                    While rngNrm.Offset(-1, 0).Value > 0
                        If rngNrm.Offset(0, 1) = 0 Then
                            rngNrm.Offset(0, 1).FormulaR1C1 = "=(RC[-1]-R28C[-1])/R28C[-1]"
                            rngNrm.Offset(0, 1).NumberFormat = "0.00%"
                        End If
                        Set rngNrm = rngNrm.Offset(1, 0)
                    Wend
                Next
        End If
    End With
Next
End Sub
Согласие есть продукт при полном непротивлении сторон
 
mifed, код следует оформлять соответствующим тегом. Исправляйте.
 
Цитата
Влад написал:  "Во всей книге" - это на всех листах имеется ввиду?
Да, именно во всех листах в книге, одновременно. Чтобы не запускать макрос в каждом листе по-отдельности.
 
Цитата
mifed написал: Чтобы не запускать макрос в каждом листе по-отдельности.
Цитата
Влад написал: Поставьте процедуру в цикл и выполняйте на каждом листе.
Страницы: 1
Наверх