Хелп! Мой макрос считает сумму диапазона А1-А6 и выводит значение на экран он работает только в том случае, если активен лист "Массив" Ели я запускаю макрос, находясь на другом листе этой же книги, то выдает ошибку
Необходимо, чтобы он работал и с других листов
Код
Public Sub copygraf()
Dim m As Variant
m = Application.Sum(Worksheets("Массив").Range(Cells(1, 1), Cells(1, 6)))
MsgBox m, vbOKOnly
End Sub
VideoAlex написал: Я у себя вместо "Массив" написал индекс листа
А если он решит поменять листы местами, или удалить лист?
Код
Public Sub copygraf()
Dim m As Variant
with Worksheets("Массив")
m = Application.Sum(Range(.Cells(1, 1), .Cells(1, 6)))
End with
MsgBox m, vbOKOnly
End Sub
Юрий М, удалит другой, конечно, лист) VideoAlex,никто не сомневается! но в описанных мной случаях это будет ошибка.Зачем плодить ошибки в работе макроса?
Упс...сорри парни не правильно написал...конечно же макрос считает сумму А1-F6
Проблема именно в запуске макроса с другого листа имя листа на индекс не могу поменять т.к. индекс листа в моем случае будет часто меняться, мне нужно обращаться именно к имени листа Вообще то, что я выложил в первом посте это я так сказать "выжимка" с проблемой более полная часть кода с ошибкой выглядит так Проблема с переменной m ячейки которые в ней суммируются находятся на другом листе....
Код
Public Sub prov()
For i = 1 To Sheets("Платежи").UsedRange.Rows.Count
For j = 3 To Sheets("Массив").UsedRange.Rows.Count
m = Sheets("Массив").WorksheetFunction.Sum(Range(Cells(j, NumberColumnBegin), Cells(j, NumberColumnEnd)))
If Cells(i, 1) = Sheets("Массив").Cells(j, 1) And m > 0 Then
Cells(i, 1) = Sheets("Массив").Cells(j, 1)
k = k + 1
Cells(i + k, 4) = Sheets("Массив").Cells(j, 3)
Cells(i + k, 2) = Sheets("Массив").Cells(j, 2)
End If
m = 0
Next j
k = 0
End Sub
jura.jurin,Вот как, макрос и не посмотрели, а решение я писала:
Код
Public Sub copygraf()
Dim m As Variant
with Worksheets("Массив")
m = Application.Sum(Range(.Cells(1, 1), .Cells(6, 6)))
End with
MsgBox m, vbOKOnly
End Sub