返回列表 上一主題 發帖

[發問] 使用VBA自訂範圍資料驗證失敗

[發問] 使用VBA自訂範圍資料驗證失敗

想請教大大們為何會失敗呢~?
'自訂區域
With Sheets("轉換表")
        myRange = .Range("s2:s" & .Range("s65536").End(xlUp).Row) '資料驗證用
end With

'資料驗證選單
'試過兩種方式
'第一種
    For Each e In myRange
        arr = arr & "," & e
    Next
    arr = Split(Mid(arr, 2, 10000), ",")
    With Range("d2:d" & allr).Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=arr
    End With
'第二種是直接將Arr換成myRange
PKKO

想請教大大們為何會失敗呢~?
'自訂區域
With Sheets("轉換表")
        myRange = .Range("s2:s" & .Ran ...
PKKO 發表於 2015-1-2 18:21



    高手大大們~求助求助~
PKKO

TOP

我改成以下,仍無法使用
  1. With Sheets("轉換表")
  2.         cc = .Rows(1).Find("所有單位", Lookat:=xlWhole).Column '代號的Column
  3.         Set myRange = .Range("T2:T" & .Range("T65536").End(xlUp).Row) '資料驗證用
  4.         For Each e In myRange
  5.             ARR = ARR & "," & e
  6.         Next
  7.         ARR = Split(Mid(ARR, 2, 10000), ",")'看過陣列的值確定沒問題
  8.         With Range("d2:d" & allr).Validation
  9.             .Delete
  10.             .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
  11.             xlBetween, Formula1:=ARR'卡在這邊
  12.         End With
  13. End With
複製代碼
PKKO

TOP

請問資料驗證的部分有大大能提供好的解決方案嗎?
還有資料驗證要如何輸入空白阿?就是選錯之後,可以再選成空白
PKKO

TOP

回復 8# GBKEE


    感謝,原來如此!
PKKO

TOP

回復 6# HUNGCHILIN

版主大大,可否請教您使用的 With Me => 這個Me 代表的是?
PKKO

TOP

本帖最後由 PKKO 於 2015-3-8 01:32 編輯

感謝版主大大,原來如此!

但想問一下,若是已經放在該SHEET內的程式碼

不就可以直接使用ex: CELLS(1,1),不需要WITH

還是說透過WITH 裡面[ . 的程式碼]執行速度會比較快?
PKKO

TOP

回復 13# GBKEE


    恩恩,感謝!

   但若是已經放在該SHEET內應該就可以直接用 Rows(1).Find("所有單位", Lookat:=xlWhole).Column '代號的Column

而不用使用以下的寫法
WITH ME
   .Rows(1).Find("所有單位", Lookat:=xlWhole).Column '代號的Column
END WITH

當然版主大大是因為直接修改我的程式碼會比較快,但除此之外
如果是自己撰寫程式碼的話,WITH ME因該是沒有存在的必要?(假設已經將程式碼放置在該SHEET內的話)
還是有其他的用法?
PKKO

TOP

回復 16# GBKEE


   嗯嗯嗯!我了解了,確實也可以加快撰寫程式碼的速度,謝謝哦!!
PKKO

TOP

        靜思自在 : 受人點水之恩,須當湧泉以報。
返回列表 上一主題