Кнопка макроса находится на другой вкладке в книге Excel.
Я хочу создать составные тарифы для страховых планов.Мне нужно изменить значение в первой строке данных ("G" & EElastrow + 9 & ":" & lastcolumnletter & EElastrow + 9
), чтобы значения на четыре строки ниже ("G" & EElastrow + 13 & ":" & lastcolumnletter & EElastrow + 13
) были равны нулю.Эти строки должны быть динамическими, так как они меняются в зависимости от размера клиента.
Когда я запускаю этот макрос, он продолжает говорить «Ошибка метода выбора класса Range».Я предполагаю, что я не могу "выбрать" необходимые столбцы.Как выбрать эти столбцы без использования ActiveSheet?
Этот диапазон отлично работает практически во всех остальных частях моей книги Excel, но только не с этим приложением.
Что я делаю неправильно?
Я изменил на ActiveSheets
, но это изменяет вкладку, в которой находится кнопка макроса.Я не могу переместить кнопку макроса на вкладку, которая будет содержать окончательные результаты.
' Perform Goal Seek
Dim i As Integer, numCols As Integer
Dim cCell As String ' Changing range of cells
Dim sCell As String ' Changing range of cells
Dim lastColumnNum As Integer, EElastrow As Integer
Dim lastcolumnletter As String
EElastrow = 5 + Worksheets("Master census").Range("h5") - 1
lastColumnNum = Sheets("Carrier rates by EE").Cells(5, Columns.Count).End(xlToLeft).column
lastcolumnletter = Split(Columns(lastColumnNum).Address(), "$")(2)
' Disable Excel Properties
With Application
.ScreenUpdating = False ' Prevent screen flickering
.DisplayAlerts = False ' Turn off Alerts
.EnableEvents = False ' Prevent all events
End With
' Run the Goal Seek on multiple columns
' Select the range of cells for the Goal Seek to change
Worksheets("Carrier rates by EE").Range("G" & EElastrow + 9 & ":" & lastcolumnletter & EElastrow + 9).Select
Worksheets("Carrier rates by EE").Range("G" & EElastrow + 9 & ":" & lastcolumnletter & EElastrow + 9).Value = Worksheets("Carrier rates by EE").Range("G" & EElastrow + 9 & ":" & lastcolumnletter & EElastrow + 9).Value
numCols = Selection.Columns.Count
' Move across the cells in Range("G" & EElastrow + 9 & ":" & lastcolumnletter & EElastrow + 9)
For i = 0 To numCols - 1
cCell = Worksheets("Carrier rates by EE").Cell.Offset(0, i).Address ' range of cells to change
sCell = Worksheets("Carrier rates by EE").Cell.Offset(4, i).Address ' 4 rows down from Range("G" & EElastrow + 9 & ":" & lastcolumnletter & EElastrow + 9) = Range("G" & EElastrow + 9 & ":" & lastcolumnletter & EElastrow + 9)
' Runs the multi column Goal Seek
Worksheets("Carrier rates by EE").Range(sCell).Goalseek Goal:=0, ChangingCell:=Worksheets("Carrier rates by EE").Range(cCell)
Next i
' Enable Excel Properties
With Application
.ScreenUpdating = True ' Enable screen flickering
.DisplayAlerts = True ' Turn on Alerts
.EnableEvents = True ' Re-enable all events
End With
Я должен видеть, что это приложение применяется только к вкладке "Нормы тарификации по EE".Моя ссылка на этот код взята из следующего видео на YouTube: https://www.youtube.com/watch?v=NsYvERSCAfU
Спасибо всем за помощь в улучшении понимания того, что необходимо.