Есть ли другой способ, кроме Activesheet.Name, узнать, какой лист вызывает макрос?
В настоящее время у меня есть код, где вы нажимаете кнопку, затем запускается программа моделирования, затем, как только запускается программа, она выходитна другой лист в рабочей книге и вставляет информацию.
Это работает, если я запускаю макрос по одному на каждом листе, но я хочу иметь возможность запускать их все одновременно.
Пример: у меня есть входной лист "Run1", который содержит кнопку, затем, когда симуляция завершена, она делает что-то на листе с именем "Results1"
Я создал дубликаты листов "Run1" и "Results1 "и увеличил число в конце
If ActiveSheet.Name = "Run1" Then
t = 1
End If
If ActiveSheet.Name = "Run2" Then
t = 2
End If
If ActiveSheet.Name = "Run3" Then
t = 3
End If
If ActiveSheet.Name = "Run4" Then
t = 4
End If
If ActiveSheet.Name = "Run5" Then
t = 5
End If
If ActiveSheet.Name = "Run6" Then
t = 6
End If
Worksheets("Results" & t).Activate
For Each A In ActiveSheet.ChartObjects("Chart 9").Chart.SeriesCollection
A.Delete
Next A
Если я нажму все кнопки одновременно, он выдаст ошибку, потому что пытается перейти на лист результатов, на основе которого запускается лист пользователяв настоящее время включен.И поскольку программа симуляции работает, код не завершается синхронно, Excel не может найти таблицу результатов, которую вызывает первый макрос кнопки, потому что он не активен.