2013-07-25 57 views
0

我對Access vba很公平,但Word對我來說是一種新的方言。打開單詞表單的多個副本?

我爲有電子病歷(EMR)的醫院工作。我們需要護士臨牀進度註釋的特定格式和結構,這些註釋不能在EMR中創建和實施。我創建了Word vba用戶窗體,「frmProgNote」附加到文檔「ProgNote.doc」。 FrmProgNote「具有創建我們需要的文檔結構的文本框,並且有一個命令按鈕,單擊該按鈕時,將表單中的信息發送到ProgNote.doc中的書籤,並將文檔中的所有文本(包括新插入的文本)複製到剪貼板中。然後用戶將它粘貼到EMR中,這一切都很好(不管你信不信),但是現在他們想同時打開多個frmProgNote副本,這樣他們就可以同時在幾個病人之間移動了。

I'我發現我無法打開Word的多個實例,並且有多個相同的表單打開,我複製了文檔和表單,現在使用PrmNote.doc和frmProgNote1和ProgNote2.doc與frmProgNote2。我可以同時打開但是如果我打開frmProgNote1然後打開frmProgNote2我可以複製的唯一數據來自frmProgNote2;複製按鈕不會從第一個表單複製任何內容。我可以點擊frm1並讓它獲取新數據,但複製按鈕不起作用了。有什麼建議麼?非常感謝。

+0

問:你能不能發佈任何代碼? – paulsm4

回答

0

以下代碼給出了創建UserForm的新實例的基礎。

Private frmNewInstance As Object 

Private Sub CommandButton1_Click() 
    Set frmNewInstance = UserForms.Add(Me.Name) 
    frmNewInstance.Show 
End Sub 

Private Sub UserForm_Terminate() 
    Set frmNewInstance = Nothing 
End Sub 

,有必要控制該對象的參考,當表單實例關閉其設置爲Nothing

請注意,此過程不像在VB.NET或C#中那樣健壯或可靠。特別是,要區分表單的不同實例更加困難。

一種方法要考慮的是使用形式的Tag屬性:

frmNewInstance.Tag = "OtherOne" 
    frmNewInstance.Show 
+0

Andy,我會把這個放在frm1中,然後拉起第二個表單,而不是嘗試我一直在做的表單和複製方法?謝謝 – user2410037

+0

是的,你可以把它放在frm1。但請注意,這個過程並不像VB.NET那樣乾淨或可控,所以您需要嘗試(並進行一些研究)。 –