Board logo

標題: [請教]控制項群組化複製問題 [打印本頁]

作者: abbay262    時間: 2019-11-19 18:43     標題: [請教]控制項群組化複製問題

在form中置放一個frame,其上有一個CommandButton及一個label
請問,可以在執行時,複製出相同結構新的frame嗎
作者: luhpro    時間: 2019-11-20 21:43

在form中置放一個frame,其上有一個CommandButton及一個label
請問,可以在執行時,複製出相同結構新的fra ...
abbay262 發表於 2019-11-19 18:43


可以的, 複製貼上就好..
  1. Private Sub cbCopyFrame_Click()
  2.   Frame1.Copy
  3.   Me.Paste
  4. End Sub
複製代碼
[attach]31438[/attach]
作者: abbay262    時間: 2019-11-22 17:11

我原本是要問VBA上的USERCOTROLS,後來google後,並沒有這功能,感謝您的回答,竟能如此應用!十分神奇!

請問在您的回答上,frame1以及貼上後的frame2上的CommandButton1、Label1均是相同名稱,這要如何引用呢?
作者: abbay262    時間: 2019-11-22 17:23

承上,
luh大,這個Frame用在Sheet上可行,但用在UserForm上,便會錯誤,請問是Me的問題嗎?
  Frame1.Copy
  Me.Paste
作者: abbay262    時間: 2019-11-22 20:48

自答#3問題
#4的問題還在,請高手解惑啊

    For Each ctl In Me.Controls
        If TypeName(ctl) = "TextBox" Then ctl.Text = ""
    Next
作者: luhpro    時間: 2019-11-23 09:24

本帖最後由 luhpro 於 2019-11-23 09:28 編輯
請問在您的回答上,frame1以及貼上後的frame2上的CommandButton1、Label1均是相同名稱,這要如何引用呢?
abbay262 發表於 2019-11-22 20:48

因為它們是隸屬於不同的 Frame 物件啊,
一個是 frame1.CommandButton1
另一個是 frame2.CommandButton1
在取用上是沒有衝突的.
luh大,這個Frame用在Sheet上可行,但用在UserForm上,便會錯誤,請問是Me的問題嗎?

Me 在此處是表示 Worksheet 不是 UserForm,
我是業餘的,
沒試過這樣貼,
現在趕著要出門,
晚點再試試...
For Each ctl In Me.Controls
         If TypeName(ctl) = "TextBox" Then ctl.Text = ""
     Next

原因同上,
Me 在此處是表示 Worksheet 不是 UserForm,

你可以在 "即時運算視窗"(按 Ctrl + G 開啟) 上打 debug.print me.name 再按 Enter 鍵就可以確認 Me 是哪個物件.

你試試 :
With Me .Frame1
    For Each ctl In .Controls
         If TypeName(ctl) = "TextBox" Then ctl.Text = ""
     Next
End With

當然 Frame2 比照即可. (Ps 我沒測過, 不確定可不可以, 等回來後再上來回文)
作者: luhpro    時間: 2019-11-23 13:31

本帖最後由 luhpro 於 2019-11-23 13:32 編輯

原文不讓編輯只能重開一篇更新了.
4# luh大,這個Frame用在Sheet上可行,但用在UserForm上,便會錯誤,請問是Me的問題嗎?
  Frame1.Copy
   Me.Paste

剛剛試過Userform 內的物件不能貼上Sheet,
我猜應該是因為 UserForm 是在編輯視窗中建立的物件,
它內部的物件也只能專用於 UserForm,
性質與工作表中的物件不一樣,
(最明顯的例子是 CommandButton 這個物件,
Worksheet 中有 Copy 方法 而 Userform 則無.)

所以不能互相複製使用.

不過 Userform 還是可以動態(不是編輯時就建立好的)新增的,
請參看這篇 :
[發問] 動態新增 UserForm 及 CommandButton 後 如何寫click的動作?
所以要再新增一個有相同物件的 Userform 是沒問題的.

至於若是你要 (複製) 一個 Userform 上的物件過去 Sheet,
在 Sheet 上新增同型物件,
再逐個將屬性指定給新增的物件也是一個可考慮的方向.




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)