Board logo

標題: 儲存格RUN巨集問題 [打印本頁]

作者: basarasy    時間: 2010-10-14 17:55     標題: 儲存格RUN巨集問題

請問 可以SET 當A1是1 時 就會自動 RUN  巨集A,當A1是2 時 就會自動 RUN  巨集B嗎?
作者: GBKEE    時間: 2010-10-14 18:48

回復 1# basarasy
Sheet物件的內建觸動事件
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     If Target.Address(0, 0) = A1 And Target = 1 Then
  3.         巨集A
  4.      ElseIf Target.Address(0, 0) = A1 And Target = 2 Then
  5.         巨集B
  6.     End If
  7. End Sub
複製代碼

作者: basarasy    時間: 2010-10-15 10:32

回復 2# GBKEE

謝謝GBKEE 版主.
請問有什麼好的excel書教這些比較深入的碼?
作者: oobird    時間: 2010-10-15 11:21

這些只是比較基礎的語法,熟練後就能靈活運用。
深入點的書也很多,但我也看不懂!不建議你急著買。
作者: basarasy    時間: 2010-10-15 13:49

回復 4# oobird
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)


  2.    If Target.Address(0, 0) = U5 And Target = 1 Then

  3.         MYIC1
  4.         
  5.      ElseIf Target.Address(0, 0) = U5 And Target = 2 Then
  6.      
  7.         MYIC2

  8.        ElseIf Target.Address(0, 0) = U6 And Target = 3 Then
  9.       
  10.         MYIC3

  11.          ElseIf Target.Address(0, 0) = U5 And Target = 4 Then
  12.          
  13.         MYIC4

  14.          ElseIf Target.Address(0, 0) = U5 And Target = 5 Then
  15.          
  16.         MYIC5

  17.          ElseIf Target.Address(0, 0) = U5 And Target = 6 Then
  18.          
  19.         MYIC6

  20.          ElseIf Target.Address(0, 0) = U5 And Target = 7 Then
  21.          
  22.         MYIC7

  23.          ElseIf Target.Address(0, 0) = U5 And Target = 8 Then
  24.          
  25.         MYIC8

  26.          ElseIf Target.Address(0, 0) = U5 And Target = 9 Then
  27.          
  28.         MYIC9

  29.          ElseIf Target.Address(0, 0) = U5 And Target = 10 Then
  30.          
  31.         MYIC10
  32.         
  33.     End If
  34.     End Sub
複製代碼
我改成這個,但不能run.   u5是下拉清單有 1-10 . 當u5=4時會自動run  MYIC4.

我買了2本vba都沒有教這一些碼.
作者: GBKEE    時間: 2010-10-15 14:06

回復 5# basarasy
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim  U5 As $    '定義變數為字串型態
U5="U5"          '給變數一個字串
If Target.Address(0, 0) = U5 And Target = 1 Then
'
'
作者: basarasy    時間: 2010-10-15 16:32

回復 6# GBKEE


    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim  U5 As string   
U5="U5"         
If Target.Address(0, 0) = U5 And Target = 1 Then
'

還是不能用><
作者: GBKEE    時間: 2010-10-15 16:43

回復 7# basarasy
怎不能用 請船上檔案
作者: oobird    時間: 2010-10-15 23:44

本帖最後由 oobird 於 2010-10-16 20:32 編輯
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     If Target.address = [U5].address Then
  3.         Select Case Target
  4.         Case 1: MYIC1
  5.         Case 2: MYIC2
  6.         Case 3: MYIC3
  7.         Case 4: MYIC4
  8.         End Select
  9.     End If
  10. End Sub
複製代碼

作者: basarasy    時間: 2010-10-16 14:36

謝謝oobird大大.
這個可以用到.




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