返回列表 上一主題 發帖

表單控制項無法自動刪除

表單控制項無法自動刪除

首先感謝GBKEE大大之前的指導,
檔案為更改GBKEE大大程式碼所產生的,不過遇到一個小問題,
就是程式一直無法自動刪除控制項,
一直出現下圖:
111.jpg
也爬了很多文章,但就是試不出來,
  1.     Dim sp As Control
  2.     For Each sp In UserForm1.Frame2.Controls
  3.        If sp.Name Like "ToggleButton*" Then sp.Delete
  4.     Next
複製代碼
錯誤一直出現在 sp.Delete 這裡,實在找不到方法了,
因此,請各位大大幫忙指導一下,感謝!

test.zip (10.43 KB)

我是斯多

回復 2# GBKEE

GBKEE大大,您好:
程式碼改成:If sp.Name Like "ToggleButton*" Then Controls.Remove (sp.Name),確實可執行刪除,
再請教一個問題,要如何讓自動產生ToggleButton按鈕點擊時,讓按下去的ToggleButton按鈕字體變成粗體字或是改變背景顏色?
跟這個相關的觀念應該是控件自動加入程式碼,我試過下面的方法
  1.     da = Val(Day(day2))
  2.     For i = 1 To da
  3.         With UserForm1.Frame2.CodeModule
  4.             X = .CountOfLines
  5.             .InsertLines X + 1, "Private Sub ToggleButton" & i & "_Click()"
  6.             .InsertLines X + 2, "  msgbox ToggleButton & i "
  7.             .InsertLines X + 3, "End Sub"
  8.         End With
  9.     Next i
複製代碼
可是卻沒辦法執行,這個觀念一直搞不懂,還請大大指導一下,感恩~
我是斯多

TOP

回復 4# GBKEE
GBKEE大大,您好:
您所製作的程式碼確實可以執行,不知小弟以下註解是否正確:
Dim XToggle() As New Class1    ->定義XToggle()為物件類別模組,使用時機??
ReDim XToggle(day1 To day2)  ->重新定義XToggle陣列,數量為day1 To day2,但為什麼需要定義這個陣列? 再者陣列不是從0開始,XToggle(i)怎麼不會出錯?
Set XToggle(I).Toggle = Controls(.Name)     ->設定XToggle(I)控制項的名稱?  .Toggle是什麼功用?(以MsgBox XToggle(i).Toggle檢視均為false,F1也查不到)
Public WithEvents Toggle As MSForms.ToggleButton    ->公告Toggle是表單中的ToggleButton按鈕
如何分辨Shapes、OLEObjects、Controls的差別或使用時機??
參研後的感想....
只能說VB程式碼的世界真像宇宙般浩瀚無垠,
這些程式碼不知道您是如何構思出來的,如何才能有這樣撰寫的想法及能力...
真的很想成為像您一樣的高手,然後再幫助別人成長,
總之,真的很佩服您!
我是斯多

TOP

回復 6# GBKEE

又上了一課,感謝GBKEE大大!
我是斯多

TOP

        靜思自在 : 多做多得。少做多失。
返回列表 上一主題