返回列表 上一主題 發帖

[發問] 如何利用迴圈直接改Label 的name?(已解決)

[發問] 如何利用迴圈直接改Label 的name?(已解決)

本帖最後由 icestormer 於 2012-5-7 08:41 編輯

我有大約53個label16 -label53 我想利用迴圈 直接把name 改成 label16>>LB1 一宜到LB53


但我發現改不呢, 改它的caption 倒可以 不知要怎寫呢?
Sub 改名()

  For i = 1 To 53
   
         我的表單.Controls("Label" & i + 15).Name

  Next
  
  End Sub

回復 3# Hsieh


   那我了解 感謝 超版

TOP

本帖最後由 icestormer 於 2012-5-4 11:36 編輯

可以請教一下  如何寫動態建立Label 在表單上呢 ,?可以同時設定 多長 多高 及位置嗎?

TOP

回復 6# Hsieh


   謝 超版 來去試看看^^

TOP

本帖最後由 icestormer 於 2012-5-5 21:32 編輯

問題1.rar (6.87 KB) 回復 6# Hsieh



請問超版  我用下列程式碼在自訂表單上 生出這些label  那要怎在另一個按鍵 (改變)中 改變LA0的CAPTION呢? 都一直說 找不到物件

另外 如果想刪除透過程式碼生成的控制項(像是Label)又要怎寫呢??
    Private Sub CommandButton2_Click()
For j = 0 To 32
              For i = 0 To 6           
                With Controls.Add("Forms.Label.1", "LA" & j + i, True)'請問這行中的 TRUE 是不是指 要顯示的意思?
                   .Caption = .Name
                   .Font.Size = 12
                   .BorderStyle = 1
                   .ForeColor = &H80000012
                   .Top = 42 + (j * 14)
                   .Left = i * 70
                   .Width = 70
                   .Height = 16
                   .TextAlign = 3
             end with
    next  i
next j
=======================================================
另外不知要怎寫迴圈能表現出下方這種情況呢?

試了好久但都試不出來 像下方的程式碼怎要怎寫. 用雙迴圈 也寫不出來

1的10
2的9
3的8
4的7
5的6
6的5
7的4
8的3
9的2
10的1

TOP

回復 9# Hsieh


   謝 超版  來去試看看

TOP

本帖最後由 icestormer 於 2012-5-6 09:33 編輯

回復 9# Hsieh


    剛才的程式完全可以使用但我有二個問題 還是不懂 想請問超版


我如果把程式改成這樣

Private Sub UserForm_Initialize()
'新增2欄8列
For j = 1 To 2
k = 0
    For i = 1 To 10
    k = k + 1
      With Controls.Add("Forms.Label.1", , True)'不改它NAME 讓它由Label1 -21
      .Caption = .Name
         .Top = 20 * (i - 1) + 5
         .Left = 160 * (j - 1) + 5
         .Width = 155
         .Height = 18
         ComboBox1.AddItem .Name
      End With
    Next
Next
End Sub

然後我另外弄一個CMD 內容是

Label1.caption ="測試" <<會失敗找不到物件
----------------------------------------------------------------------------------------------------------------------------
但如果我是先事在表單上 先拉出一個LAbel1後

這時由上頭程式碼產生的Label 1-21 >變成>Label2-21
我再按CMD 的巨集 郤是可以改變Lable1.caption

這是為什麼呢? 程式生成的Label1 為何沒法利用 Label1.caption ="測試" 來改變它呢?但事先拉在表單上的Label1.caption 郤可以?實在不懂呢
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
第二問題是.

像程式碼生成 出 Label1 -21 這部份可以利用迴圈 把它們一次都設定成visible=false? 是要利用tabindex 嗎? 還是要如何寫呢?

TOP

本帖最後由 icestormer 於 2012-5-6 22:28 編輯

回復 12# GBKEE


    感謝你 經剛才試了您的程式碼 完全可以用了

不過想問另一個問題 如果 不用for next可以改用for each  X  in Label 之類的??
就是如果自訂表單上 有
TextBox 5個
Label  10個
commandbutton 6個

我可以利用for each 針對 Label  統計一共有多少個Label ?

sub commandbutton_click() <<目前只會這個而已,但他只會計算全部的控制項有多少呢.
for each  x in controls

     i=i+1
next
msgobx  "一共有多少:" & i & "控制項"

end sub
================================================================
想再問您一個問題如果我想利用雙迴圈寫出 如下的排序 要怎寫呢?怎想都想不出來..

1        2        3        4        5        6        7
8        9        10        11        12        13        14
15        16        17        18        19        20        21

TOP

回復 14# Hsieh


       感謝 二位超版^^ 來去試看看
快可以有權限下載了. 到時去下載版上先進分享的VBA學習檔案 好好學習

TOP

        靜思自在 : 【時間如鑽石】時間對一個有智慧的人而言,就如鑽石般珍貴;但對愚人來說,卻像是一把泥土,一點價值也沒有。
返回列表 上一主題