我在不同的文件夹中维护了两个excel工作簿,在第一个excel我创建了一个Userform,其中有两个组合框,我已经声明了一个全局变量" EpcName"在Userform中,此全局变量存储第二个组合框选定值。 现在我的问题是如何使用Userform中的Global变量值到不同文件夹中的其他工作簿。
工作簿1路径(我在哪里创建了userform) C:\ Users \ inkapb \ AppData \ Local \ Temp \ EPC AutoTool \ Start Screen -UI \ UI.xlsm
练习册2路径 C:\ Users \ inkapb \ AppData \ Local \ Temp \ EPC AutoTool \ Projects \ Power Plant \ Power Plant EPC 1.xlsm
以下是我在Userform
中编写的代码 Public EpcName As String
Private Sub CommandButton1_Click()
Dim wb As Workbook
Dim ws As Worksheet
Set wb = Workbooks("UI.xlsm")
Set ws = wb.Worksheets("Sheet2")
Dim qwerty As String
Dim cf As Range
EpcName = Me.ComboBox2.Text 'Want to pass this String to other workbook
With ws
.Activate
With .Range("C1:C10000")
Set cf = .Find(what:=EpcName, _
lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If cf = "" Then
MsgBox "nothing"
Else
Range(cf.Address).Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
End If
End With
End With
End Sub
感谢任何帮助。
答案 0 :(得分:0)
应该可以。声明并初始化工作簿中包含用户表单的变量,例如像这样。
experiment_id
然后在其他工作簿中,类模块ThisWorkbook,添加例如像这样的公共财产(可能只是一个公共变量)。
Option Explicit
Public EpcName As String
Private m_theOtherWorkbook As Workbook
Private Sub UserForm_Initialize()
On Error GoTo ErrInit
Set m_theOtherWorkbook = Workbooks("Power Plant EPC 1.xlsm")
Exit Sub
ErrInit:
MsgBox "Error in " & Me.Name & ". UserForm_Initialize. " & Err.Description, vbCritical, "Error"
End Sub
在User表单的代码中,只需调用其他工作簿的EpcName属性(当然必须打开其他工作簿)。属性EpcName现在是另一个工作簿的新接口的一部分,它应该工作得很好。 HTH
Option Explicit
Private m_epcName As String
Public Property Get EpcName() As String
EpcName = m_epcName
End Property
Public Property Let EpcName(ByVal vNewValue As String)
m_epcName = vNewValue
End Property