返回列表 上一主題 發帖

一個清單驗證問題

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

TOP

本帖最後由 dafa 於 2012-1-17 08:29 編輯

回復 11# GBKEE

很抱歉說的不清楚
我測試Account Code欄位輸入錯誤資料時
為何出現警告訊息時沒有出現我輸入的字串  
.ErrorMessage = "You must enter a number from five to ten"


附件已上傳

2012-各業務負責人付款明細1.zip (388.96 KB)

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

回復 13# GBKEE


    感謝G大的解答
我又發現一個問題
就是陣列字元太多沒辦法全部塞入清單內
xlBetween, Formula1:=bb
有方法解決ㄇ?

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

回復 15# GBKEE


    感謝G大詳細的解釋
幫了我很大的忙
你真是好人
:D

TOP

        靜思自在 : 做該做的事是智慧,做不該做的事是愚癡。
返回列表 上一主題