Итак, я пытался добавить проверку данных в одном из моих макросов, который перемещает строку данных на следующую вкладку.
Я искал здесь и в других местах синтаксис et c. и думаю, что я должен иметь право заявки. Основная проблема заключается в том, что всякий раз, когда я запускаю макрос, я получаю «Неверное количество аргументов или неверное присвоение свойства»
Соответствующая часть макроса выглядит следующим образом:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
Dim RngP As Range, RngQ As Range
With ThisWorkbook.SHEETS(4) 'The code only fires if they confirm - if not, the line will remain in Pipeline.
Dim RowToPasteTo As Long
RowToPasteTo = .Cells(.Rows.Count, "B").End(xlUp).Row + 1
.Range("P" & RowToPasteTo).FormulaR1C1 = "=IFERROR(IF(RC[8]="""",RC[-3]-RC[-1]-RC[9],""""),"""")" 'Creates the budget Overhead Formula
.Range("Q" & RowToPasteTo).FormulaR1C1 = "=IFERROR(RC[-2]/RC[-4],"""")" 'Creates the percentage of budget used formual
Set RngP = .Range("P" & RowToPasteTo).Range 'Setting variable to new budget overhead cell
Set RngQ = .Range("Q" & RowToPasteTo).Range 'Setting Variable to new Budget Used cell
RngP.Validation.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Formula1:="=""" 'Making data validation lock in the formula
RngQ.Validation.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Formula1:="=""" 'Making data validation lock in the formula
End With
End Sub
Кажется, ошибка применяется на строки Set RngP = .Range("P" & RowToPasteTo)
и следующие три строки.
То, к чему я стремлюсь, это установить проверку данных для новых ячеек P & Q с формулами на пользовательскую проверку = "", чтобы другие люди не меняли формулу.
Что я сделал не так?