iT邦幫忙

1

EXCEL VBA 如何透過變數字串 指定不同表單

  • 分享至 

  • xImage

請問一下
我有一個表單C想設計被其他表單(A或B)呼叫(登入認證),當驗證OK後 會回填資料到原本的表單(A或B)

在工作表我會寫
Dim ws as worksheet
set ws=Thisworkboo.worksheet(工作表名稱)
ws.textbox1="xxxx" <----想執行的動作

若要指定某一個表單的話 可以如何寫呢?
上網查過 下列兩種方式,仍無法使用

-自答----- 分隔線 表單C內 以下3種都可達到 ----20230602編輯
1.)
Public tmpFrm As Object
Set tmpFrm = CallByName(UserForms, "Add", VbMethod, 工作表名稱)

2.)
Public tmpFrm As UserForm
Set tmpFrm = VBA.UserForms.Add(工作表名稱)

3.)
public Z as Object
For Each Z In UserForms
If Z.Name = (表單A 或表單B名稱)Then Set tmpFrm = Z
Next

看更多先前的討論...收起先前的討論...
achan iT邦研究生 4 級 ‧ 2023-02-10 17:49:21 檢舉
自問自答
在表單C 如下
需要在表單C 最前面宣告Z 為public 三種方式都可達到功能
For Each Z In UserForms
If Z.Name = (表單A 或表單B名稱)Then Set tmpFrm = Z
Next
菩薩慈悲:能不能給我您的表單程式碼,匯出檔案為 A.frm 、B.frm 即可,還有您需要哪些登入的資料回傳,我來實作試試看看。懶得自建表單測試故爾。感恩感恩 南無阿彌陀佛
或者我們也可以透過 Google Meet 會議通訊之類的軟體來討論,菩薩您給我看您的程式及想做到的功能,我直接演示給您看,看是不是這樣。也比打字有效多了。感恩感恩 南無阿彌陀佛
或者用 Messenger 我常用的是臉書,自我介紹裡有網址,但 Messenger 不能桌面分享演示交流上就不方便了 阿彌陀佛

如果試做成功,達到預期,才來貼上程式碼,以貽後人,共享仝成。感恩感恩 南無阿彌陀佛
achan iT邦研究生 4 級 ‧ 2023-02-20 10:25:59 檢舉
孫守真任真甫 謝謝你願意幫忙
我已經將解決方法 貼在上面

我的用途很簡單,不同的使用者表單 A 與表單B
都會使用 表單C 作為 登入驗證

因為登入完,需要從表單C 回傳資料給原始 表單A/表單B
才會有此之前不明瞭的問題
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
rain_yu
iT邦研究生 5 級 ‧ 2023-02-13 09:34:28

我按照理解的部分講
假設是先呼叫sheetC,做完動作後跳到sheetB。
你可以用"Sheets("sheet名稱").Select"。
例如:
Sheets("sheetC").Select
直接在底下寫你要在這張sheet做的動作。
做完接Sheets("sheetB").Select,這樣就可以切換了。

假設是form切換,可以formB.Activate、formC.Hide
formC 做完動作後,formB.Activate,formC.Hide可以切換
傳遞資料:
formC:
Public ValueC as String
Private Sub Form_Load()
 ValueC = "Value"
End Sub

formB:
Private Sub Command_Click()
 Text1.Text = formC.ValueC
End Sub
我只會這些,你參考一下。

我要發表回答

立即登入回答