从VBA中的其他函数调用一个函数(Excel)

我有两个VBA函数,但我无法从第一个函数调用另一个函数。

function1:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim lastRow As Long With ActiveSheet lastRow = .Cells(.Rows.count, "A").End(xlUp).Row Dim I, J As Integer For I = 1 To lastRow If Cells(I, "C").Value = "" Then MsgBox "Please Enter Business Type Value", vbOKOnly Exit Sub End If Next I End With End Sub 

而第二个function:

 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub Application.EnableEvents = False If Not Application.Intersect(Target, Me.Columns(3)) Is Nothing Then ActiveSheet.Unprotect Select Case Target.Value Case Is = "CNS" Target.Offset(0, 4).Locked = True Case Is = "cns" Target.Offset(0, 4).Locked = True Case Is = "APL" Target.Offset(0, 4).Locked = False Case Is = "apl" Target.Offset(0, 4).Locked = False Case Else MsgBox "Value not covered by the program", vbInformation + vbOKOnly End Select ActiveSheet.Protect Else End If Application.EnableEvents = True End Sub 

请帮助别人..在此先感谢..

在同一模块中,您只需调用nameoffunction
你可以使function公开

 public sub function 

但这是一个糟糕的(好的)解决scheme。 你应该构build你的代码

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) call modul1.function1 ( Target ) ' As Range) End sub Private Sub Worksheet_Change(ByVal Target As Range) call modul1.function1 ( Target ) ' as range call modul1.function2 ( Target ) end sub 

编辑好丑的方式

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) .... call Worksheet_change ( Target) End sub