返回列表 上一主題 發帖

[發問] 如何讓下拉選單選取後自動跳到儲存格相對應處?

回復  c_c_lai

還是不行,按A2、A3...都沒有反應
之前樓主的檔案也不行,後來我自行設定 資料驗證(清單 ...
ML089 發表於 2013-11-6 12:47

請問你是下載 "相片輸出價目表.xlsm" 直接用它來測試,還是
自己另外開啟一新檔案,而僅複製程式碼來運作?

TOP

回復 14# c_c_lai

還是不行,按A2、A3...都沒有反應
之前樓主的檔案也不行,後來我自行設定 資料驗證(清單) ,下拉選單才出現

請問 ComboBox1 是否需要自行增設,還是程式已經內定就有
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 12# ML089
你再試試看,測試結果如何再行告訴我。
謝謝!

TOP

回復  c_c_lai

我的EXCEL是2007
開啟你的檔案,其工作表名稱是 Sheet1、 Sheet2、 Sheet3
但VBA程式中 ...
ML089 發表於 2013-11-6 10:49

之前我是另外新增一Excel檔案測試,完成後便直接將程式碼貼入到原本的
"相片輸出價目表.xlsm" 內,忘了將其對應的表單名稱一併修正,真是對不起!
相片輸出價目表.rar (24.83 KB)

TOP

回復 10# c_c_lai

我的EXCEL是2007
開啟你的檔案,其工作表名稱是 Sheet1、 Sheet2、 Sheet3
但VBA程式中用的工作表名稱是 工作表1、工作表2
我試著將 VBA中的 "工作表" 改為 "Sheet" 也不行
該如何是好  

例如
Sub CellValidation()      '  stillfish00 提供
    With Sheets("工作表2").[A2:A25].Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="=工作表1!$A$3:$A$20"
    End With
End Sub
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 10# c_c_lai

謝謝你提供那麼詳細的說明

我的EXCEL開啟(安全同意也開啟)也依照畫面步驟去點選A2,可是沒有出現下拉表,是否我缺少什麼物件

{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復  c_c_lai

我下載你的檔案,點選Sheet2 - A2沒有出現下拉選單,
請問我還需要做哪些設定。
ML089 發表於 2013-11-6 09:14

TOP

回復 7# c_c_lai

我下載你的檔案,點選Sheet2 - A2沒有出現下拉選單,
請問我還需要做哪些設定。
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

謝謝~stillfish00 大大的解答
讓c_c_lai大大解答了我真正想要使用的功能~

兩位大大謝謝~學習了

TOP

回復 2# av8d
綜合了 stillfish00 大大提供的函數,以及加上整合你的需求而成。
1.   " 點一下A2~會出現下拉選單,選取後~如何自動跳到C2 ",
2.   " 當數量輸入後按下Enter後~自動跳到規格名稱 (C2輸入數字後按下Enter後~自動跳到A2) "
第二項需求,修改成:
當數量輸入後按下Enter後~自動跳到下一個規格名稱 (C2輸入數字後按下Enter後~自動跳到A3 )
  1. Public ckCurr As Boolean

  2. Private Sub ComboBox1_Change()    '  stillfish00 提供
  3.     If ckCurr Then Exit Sub
  4.    
  5.     Application.EnableEvents = False
  6.    
  7.     ckCurr = False
  8.     ComboBox1.Visible = False
  9.     Range(ComboBox1.LinkedCell).Offset(, 2).Select
  10.     Application.EnableEvents = True
  11. End Sub

  12. Private Sub CommandButton1_Click()
  13.     If Me.ComboBox1.Visible Then ckCurr = True: Me.ComboBox1.Visible = False
  14.    
  15.     Range("A2:A25,C2:C25").Select
  16.     Selection.ClearContents
  17. End Sub

  18. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  19.     Dim StrVdFml As String
  20.    
  21.     '  If ckCurr Then Exit Sub
  22.     On Error Resume Next
  23.         StrVdFml = Replace(ActiveCell.Validation.Formula1, "=", "")
  24.         '  ActiveCell.Validation.Formula1 :  "=工作表1!$A$3:$A$20"
  25.         '  ComboBox1.ListFillRange        :   工作表1!$A$3:$A$20
  26.         '  Replace(ActiveCell.Validation.Formula1, "=", "") : "工作表1!$A$3:$A$20"
  27.         '  StrVdFml : "工作表1!$A$3:$A$20"
  28.         ActiveCell.Validation.InCellDropdown = False
  29.     On Error GoTo 0
  30.     If StrVdFml = "" Then
  31.         If Me.ComboBox1.Visible Then Me.ComboBox1.Visible = False
  32.     Else
  33.         With Me.ComboBox1
  34.             '  ComboBox1.progID   =EMBED("Forms.ComboBox.1","")
  35.             '  ComboBox1:        ComboBox
  36.             '  LinkedCell:       $A$2
  37.             '  ListFillRange :   工作表1!$A$3:$A$20
  38.             .Left = ActiveCell.Left
  39.             .Top = ActiveCell.Top
  40.             '  .Width = ActiveCell.Width + 140
  41.             .Width = ActiveCell.Width
  42.             '  .Height = ActiveCell.Height + 10
  43.             .Height = ActiveCell.Height
  44.             '  .Font.Size = 22
  45.             .Font.Size = 12

  46.             .LinkedCell = ActiveCell.Address    '  "$A$2"
  47.             .ListFillRange = StrVdFml           '  "工作表1!$A$3:$A$20"
  48.             .Visible = 1                        '  顯示下拉符號

  49.             .Object.SpecialEffect = 3
  50.             '.Object.Font.Size = ActiveCell.Font.Size
  51.         End With
  52.     End If
  53.   
  54.     ckCurr = False
  55. End Sub

  56. Private Sub Worksheet_Change(ByVal Target As Range)
  57.     '  Target.Font.ColorIndex = 5
  58.    
  59.     If Not Intersect(Target, Range("C2:C25")) Is Nothing Then
  60.         If Target(1, 1) = 0 Then Exit Sub
  61.         ckCurr = True
  62.         '  MsgBox Target.Address
  63.         Target.Offset(1, -2).Select
  64.     End If
  65. End Sub

  66. Sub CellValidation()      '  stillfish00 提供
  67.     With Sheets("工作表2").[A2:A25].Validation
  68.         .Delete
  69.         .Add Type:=xlValidateList, Formula1:="=工作表1!$A$3:$A$20"
  70.     End With
  71. End Sub
複製代碼

相片輸出價目表.rar (27.72 KB)

TOP

        靜思自在 : 自己害自己,莫過於亂發脾氣。
返回列表 上一主題