excel - 调用模块到工作表时未定义子或函数
问题描述
我有一个 Worksheet_Change 脚本,我想将其解析为模块。注释掉的部分已移至带有子程序“Alluma_Change”的模块。调用时出现“未定义子或函数”错误。我需要将它分发给我的团队,所以我认为将代码分解为模块将允许它们在有更新时导入,但也许这是不可能的。谢谢!
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
解决方案
你应该:
- 移动
Alluma_Change()
到标准模块 - 做
Public
而不是Private
- 放在
Application.EnableEvents=False
事件代码的开头 - 放在
Application.EnableEvents=True
事件代码的底部 - 修复任何未定义的变量
Alluma_Change()
推荐阅读
- canvas - react-konva:禁用画布元素 devicePixelRatio 比例
- javascript - 如何使用 Javascript 将图像添加到我的问卷中?
- javascript - firebase.auth.RecaptchaVerifier 不是构造函数错误
- visual-studio - 带有 Visual Studio 的 AWS CodeCommit 代码审查工具
- math - 如何将 2D 引力效应应用于精灵
- c - c中的自定义内存分配器
- opencv - 如何检查前景是否被某种颜色包围?
- javascript - 在 React 应用程序中使用 Google OAuth2 刷新/使用刷新令牌后保持用户登录
- c# - 如何使用 IHtmlGenerator 对 Tag Helper 进行单元测试
- r - 在 R 中使用 pROC 的随机森林拟合对象的 ROC 曲线,使用正或负“投票”作为预测器