Board logo

標題: 讓程式自動辨識 [打印本頁]

作者: myleoyes    時間: 2011-12-20 21:15     標題: 讓程式自動辨識

各位前輩你們好!
         前輩!!小弟是利用[AE3]參照來讓
         AA鈕具有隱藏與取消功能
         請問是否也可以在省略[AE3]參照
         之下讓AA鈕也同樣有隱藏與取消功能
         不知程式為何?
         請知道的前輩,不吝賜教謝謝再三!!
作者: myleoyes    時間: 2011-12-20 21:18

回復 1# myleoyes
殆勢啦!忘了附程式
Sub AA()
       If [AE3] = "" Then
       : [Z:AT].EntireColumn.Hidden = False : [AE3] = 1
       ElseIf [AE3] = 1 Then [AE3] = "": [Z:AT].EntireColumn.Hidden = True
       End If
       [B7].Select
End Sub
作者: register313    時間: 2011-12-20 22:44

回復 2# myleoyes
   用CheckBox勾選
  1. Private Sub CheckBox1_Click()

  2.    If CheckBox1 = True Then
  3.       [Z:AT].EntireColumn.Hidden = False
  4.       Else: [Z:AT].EntireColumn.Hidden = True
  5.    End If
  6.    [B7].Select

  7. End Sub
複製代碼
[attach]8864[/attach]
作者: myleoyes    時間: 2011-12-21 21:11

回復 3# register313
前輩!非常的謝謝!!程式可以
        但應檔案要執行的程式很多
        所以按鈕也不少因此小弟以下列方式取代按鈕
        Private Sub Worksheet_SelectionChange(ByVal T As Range)
           Select Case T(1).Address(0, 0)
            Case "A2"
                 分析
            Case "B2"
                  隱藏與取消(AA鈕)     
          End Select
          End Sub
          因此前輩所教的方式雖好,
          可是會破壞原檔案的完整性
          是否請前輩依上陳列方式
          教導AA鈕呢?無理的要求真是不好意思
          請再辛苦你囉!謝謝再三!!
作者: register313    時間: 2011-12-21 23:00

本帖最後由 register313 於 2011-12-21 23:05 編輯

回復 4# myleoyes
    是這樣嗎?
  1. Private Sub Worksheet_SelectionChange(ByVal T As Range)
  2.    Select Case T.Address
  3.      Case "$A$2"
  4.            Call 分析
  5.      Case "$B$2"
  6.            Call 隱藏
  7.      Case "$C$2"
  8.            Call 取消隱藏
  9.      Case Else
  10.   End Select
  11. End Sub
複製代碼
  1. Sub 分析()
  2.     MsgBox "執行分析程式"
  3. End Sub
  4. Sub 隱藏()
  5.     [Z:AT].EntireColumn.Hidden = True
  6. End Sub
  7. Sub 取消隱藏()
  8.    [Z:AT].EntireColumn.Hidden = False
  9. End Sub
複製代碼
[attach]8891[/attach]
作者: GBKEE    時間: 2011-12-22 15:28

回復 4# myleoyes
但應檔案要執行的程式很多 , 所以按鈕也不少因此小弟以下列方式取代按鈕
應附檔上來看看程式的規律在哪裡!!
作者: myleoyes    時間: 2011-12-22 21:54

回復 5# register313
前輩!非常的謝謝!!
       附檔請看因為裡面的程式很多
       小弟所學習的程式又有限,因此程式會雜亂不堪
       希望將不必要的參照或多餘的按鈕與程式
       省略這是小弟想要的
作者: myleoyes    時間: 2011-12-22 22:05

回復 6# GBKEE
良師!久違嚕!謝謝!!
          檔案已附上請看需求如上
           隱藏與取消
作者: myleoyes    時間: 2011-12-22 22:10

回復 5# register313
前輩!殆勢!趕時又忘掉!
作者: register313    時間: 2011-12-23 10:53

回復 9# myleoyes

看了檔案實在不了解你要的功能
是不是再說明清楚
作者: GBKEE    時間: 2011-12-23 17:37

回復 9# myleoyes
20~30個儲存格皆為按鈕
20~30個儲存格是指哪�� ?
請你說明一下規律性!
作者: myleoyes    時間: 2011-12-23 21:14

回復 10# register313
前輩!謝謝!!以隱藏與取消為例
        Sub 隱藏()
            [Z:AT].EntireColumn.Hidden = True
        End Sub
        Sub 取消隱藏()
            [Z:AT].EntireColumn.Hidden = False
        End Sub
        需要點選兩個(按鈕)儲存格來
        來達到隱藏與取消的功能
        若加入[AE3]參照就可以點選同一儲存格
        而用前輩所教導用CheckBox勾選
        方式就可省略[AE3]參照不是更好嗎?
        但是依前輩CheckBox勾選方式
        與原來檔案以點選儲存格的方式
        是有些格格不入的感覺呢?
        再舉例 密碼程式
        Sub 密碼()
Again:
      ZZ = Application.InputBox("輸入密碼", "請輸入開啟密碼", Type:=1)
      [AE2] = ZZ
      If ZZ = False Then End
      If ZZ = 0 Then End
      If [AE1] <> [AE2] Then MsgBox "密碼錯誤, 請重新輸入 !!": GoTo Again
      If [AE1] = [AE2] Then
      [Z:AT].EntireColumn.Hidden = False
      ActiveWindow.ScrollColumn = 15
End Sub
       小弟因為不懂程式只能用此笨方式來作
       因此[AE1]與[AE2]儲存格就是多餘的
       若以前輩的功力應該不須要用[AE1]與[AE2]儲存格
       做為參照照樣可以達到密碼程式功能不是嗎?
       可否再指導這個密碼程式怎麼寫才正確呢?
       不好意思請再辛苦你囉!謝謝再三!!
作者: myleoyes    時間: 2011-12-23 21:43

回復 11# GBKEE
良師!以範例檔的Sheet15來說
       剛好有40個儲存格皆為按鈕  
       各別分配從A1:D4,E1,F1...等等皆是
       它沒有所謂的規律性只是點選哪一個
       儲存格,哪一個程式就執行
       當然啦!有些程式會一個接一個執行
       至所需的結果,這些程式所寫好囉!
       也可以順利執行,只是太多的參照
       與按鈕常常會忘了點選哪一個
       儲存格,是執行甚麼任務而頭痛哈哈!!
       所以請點選B1,字體成正常顏色
       再點選B1,字體變成隱藏色所顯示的就是
       程式所執行的指令名稱,如此一來
       不管檔案經過多久沒有使用皆可以輕鬆的操作
       所以減少參照與按鈕就會少頭疼這就是本次討論的議題謝謝再三!!
作者: GBKEE    時間: 2011-12-24 16:09

回復 13# myleoyes
太複雜了.
作者: myleoyes    時間: 2011-12-24 20:54

回復 14# GBKEE
良師!辛苦囉!
       這個取消隱藏程式小弟已經找到如下
       Sub 取消隱藏()
              Set myRng = [Z:AT]
              With myRng.EntireColumn
               .Hidden = Not .Hidden
              End With
              Set myRng = Nothing
             [B7].Select
       End Sub
            謝謝再三!!




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