返回列表 上一主題 發帖

一個清單驗證問題

回復 1# dafa
  1. Sub Ex()
  2.    Dim BB(3), CC
  3.    BB(0) = 1
  4.    BB(1) = 3
  5.    BB(2) = 4
  6.    BB(3) = 5
  7.    'CC = Join(BB, ",")          '陣列
  8.    CC = "=" & [A1:A5].Address   '儲存格
  9.    With Selection.Validation
  10.         .Delete
  11.         .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
  12.         xlBetween, Formula1:=CC
  13.         .IgnoreBlank = True
  14.         .InCellDropdown = True
  15.         .InputTitle = ""
  16.         .ErrorTitle = ""
  17.         .InputMessage = ""
  18.         .ErrorMessage = ""
  19.         .ShowInput = True
  20.         .ShowError = True
  21.     End With
  22. End Sub
複製代碼

TOP

回復 4# dafa
  1. Option Explicit
  2. Sub Ex()
  3.     Dim BB(5 To 30), i As Integer
  4.     For i = 5 To 30
  5.         BB(i) = i + 2
  6.     Next
  7.     MsgBox Join(BB, ",")
  8. End Sub
複製代碼

TOP

回復 7# dafa
xlBetween, Formula1:="=" & bb 改成  xlBetween, Formula1:=bb

TOP

回復 10# dafa
為何我的警告訊息不會出現
沒看到檔案我也不知道

TOP

本帖最後由 GBKEE 於 2012-1-17 10:07 編輯

回復 12# dafa    
Set A= ActiveCell                                                 '請加上      
   ActiveCell.Cells(, 4).Select      ->Selection
   ActiveCell = ""
   With Selection.Validation                   'Selection->  驗證 是在 ActiveCell.Cells(, 4)  不是 原先的 ActiveCell
改成  With A.Validation

TOP

回復 14# dafa
陣列字元太多沒辦法全部塞入清單內
  1. Sub 清單明細()
  2.     Dim bb, kk(), aa, B As Integer, Rng As Range
  3.             'kk() 動態陣列 可依需求指定元素的數量 , kk(30) :有31個元素 (0 To 30 )
  4.     If ActiveCell.Cells.Column <> "4" Then Exit Sub
  5.     aa = ActiveCell
  6.     If aa = "Account Code " Then Exit Sub
  7.     If aa = "" Then Exit Sub
  8.     g = Worksheets("清單明細").Cells(65536, 2).End(xlUp).Row
  9.     B = 0    '動態陣列的數目: 此時  動態陣列尚未指定元素數目
  10.     For i = 1 To g
  11.         e = Worksheets("清單明細").Cells(i, 2)
  12.         If Worksheets("清單明細").Cells(i, 2) = aa Then
  13.             j = Worksheets("清單明細").Cells(i, 34).End(xlToLeft).Column
  14.             For a = 3 To j
  15.                 ReDim Preserve kk(B)     'ReDim 陳述式 在程序層次中用來重新配置動態陣列變數的儲存空間。
  16.                 'Preserve 選擇性引數。當改變原有陣列最後一維的大小時,仍然保有原來的資料的關鍵字。
  17.                 kk(B) = Worksheets("清單明細").Cells(i, a)
  18.                 B = B + 1
  19.             Next a
  20.             bb = Join(kk, ",")
  21.             Exit For
  22.         End If
  23.     Next i
  24.     pp = Worksheets("清單明細").Cells(i, 3)
  25.     MsgBox pp, , "Account_Code說明"
  26.     Set Rng = activecells
  27.     ActiveCell.Cells(, 4).Select
  28.     ActiveCell = ""
  29.     With Rng.Validation
  30.         .Delete
  31.         .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
  32.         xlBetween, Formula1:=bb
  33.         .IgnoreBlank = True
  34.         .InCellDropdown = True
  35.         .InputTitle = ""
  36.         .ErrorTitle = ""
  37.         .InputMessage = ""
  38.         .ErrorMessage = "You must enter a number from five to ten"
  39.         .ShowInput = True
  40.         .ShowError = True
  41.     End With
  42. 'Set kk = Nothing          'kk 是陣列  不是物件
  43. ActiveCell.Offset(, -5) = Date
  44. ActiveCell.Offset(, 1) = Environ("UserName")
  45. End Sub
複製代碼

TOP

        靜思自在 : 閒人無樂趣,忙人無是非。
返回列表 上一主題