如何将代码模块中包含的VBA代码放在表单模块中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将代码模块中包含的VBA代码放在表单模块中相关的知识,希望对你有一定的参考价值。
我在“代码模块”中有一个按钮来运行请求。按钮旁边是一个标签,在按钮完成运行后立即显示一个复选标记。
按钮代码在代码模块中。带有复选标记的标签代码包含在工作簿和工作表模块中。
现在,问题是当我按下按钮时,它运行得非常好并且做了它应该做的事情,但带有复选标记的标签没有被激活。原因可能是因为我没有在我的代码模块中包含/引用工作簿/工作表模块。希望有点帮助。
工作簿中的代码模块:
Option Explicit
Private Sub Workbook_Open()
Call Tabelle1.prcResetLabels
End Sub
图纸模块中的代码:
Option Explicit
Private Sub Schaltfläche2_Klicken()
Call prcSetLabel(probjLabel:=Label1)
End Sub
Private Sub prcSetLabel(ByRef probjLabel As MSForms.Label)
With probjLabel
.Caption = "P"
End With
End Sub
Friend Sub prcResetLabels()
Dim objOLEObject As OLEObject
For Each objOLEObject In OLEObjects
With objOLEObject
If .progID = "Forms.Label.1" Then _
.Object.Caption = vbNullString
End With
Next
End Sub
Codemodul中的代码:
Public Sub Schaltfläche2_Klicken()
With Sheets("Table1")
.Range("A1").End(xlUp).Offset(1, 0).Value = Environ("USERNAME")
End With
End Sub
答案
答案很简单:
Sub Schaltfläche2_Klicken()
Call prcResetLabels
With Sheets("Table1")
.Range("A1").End(xlUp).Offset(1, 0).Value = Environ("USERNAME")
End With
Call prcSetLabel(probjLabel:=Table1.Label1)
End Sub
Private Sub prcSetLabel(ByVal probjLabel As Object)
With probjLabel
.Object.Caption = "P"
End With
End Sub
Public Sub prcResetLabels()
Dim objOLEObject As OLEObject
For Each objOLEObject In Table1.OLEObjects
With objOLEObject
If .progID = "Forms.Label.1" Then _
.Object.Caption = vbNullString
End With
Next
End Sub
以上是关于如何将代码模块中包含的VBA代码放在表单模块中的主要内容,如果未能解决你的问题,请参考以下文章