У меня есть скрипт Worksheet_Change, который я хотел бы разобрать в модули. Закомментированный раздел был перемещен в модуль с подпрограммой "Alluma_Change". Я получаю ошибку «sub или function notfined» при вызове. Мне нужно передать это моей команде, поэтому я решил, что разбиение кода на модули позволит им просто импортировать, когда есть обновления, но, возможно, это невозможно. Спасибо!
Option Explicit
Private Sub Worksheet_Change(ByVal target As Range)
If Not Intersect(target, Range("F1")) Is Nothing Then
If Range("F1").Value = "Both PT and Trad" Then
Rows("37:72").EntireRow.Hidden = False
End If
If Range("F1").Value = "Pass-Through Only" Then
Rows("37:53").EntireRow.Hidden = False
Rows("54:72").EntireRow.Hidden = True
End If
If Range("F1").Value = "Traditional Only" Then
Rows("37:53").EntireRow.Hidden = True
Rows("54:72").EntireRow.Hidden = False
End If
End If
'Dim mail_margin As Range, specialty_margin As Range, x() As String
'Set mail_margin = Range("D15"): Set specialty_margin = Range("D16")
'
' If Not Intersect(target, Range("H3")) Is Nothing Then
'
' If Range("H3").Value = "Alluma" Then
' mail_margin.Formula = mail_margin.Formula & "*0"
' specialty_margin.Formula = specialty_margin.Formula & "*0"
' Else
' x() = Split(Range("d15").Formula, "*")
' mail_margin.Formula = x(0) & "*" & x(1)
' x() = Split(Range("d16").Formula, "*")
' specialty_margin.Formula = x(0) & "*" & x(1)
' End If
'
' End If
Call Alluma_Change
End Sub
Модуль для справки:
Option Explicit
Private Sub Alluma_Change()
Dim mail_margin As Range, specialty_margin As Range, x() As String
Set mail_margin = Range("D15"): Set specialty_margin = Range("D16")
If Not Intersect(target, Range("H3")) Is Nothing Then
If Range("H3").Value = "Alluma" Then
mail_margin.Formula = mail_margin.Formula & "*0"
specialty_margin.Formula = specialty_margin.Formula & "*0"
Else
x() = Split(Range("d15").Formula, "*")
mail_margin.Formula = x(0) & "*" & x(1)
x() = Split(Range("d16").Formula, "*")
specialty_margin.Formula = x(0) & "*" & x(1)
End If
End Sub