- 帖子
- 549
- 主題
- 152
- 精華
- 0
- 積分
- 691
- 點名
- 0
- 作業系統
- WIN7
- 軟體版本
- OFFICE 2010
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2013-8-10
- 最後登錄
- 2022-9-7
 
|
回復 3# maiko
我原本提供的程式碼為,複製A欄到G欄=>移除重複(保留表頭)=>排序(英文方式)
不懂你所謂的資料驗證,若你指的是下拉選單
試試看,檔案可以正常運作
test.rar (16.45 KB)
- Sub test()
- '
-
- Columns("A:A").Copy
- Columns("G:G").PasteSpecial Paste:=xlPasteValues '貼上值
- Application.CutCopyMode = False
- '移除重複
- ActiveSheet.Range("G1:G" & [g65536].End(xlUp).Row).RemoveDuplicates Columns:=1, Header:=xlYes
- '排序
- ActiveWorkbook.Worksheets("工作表1").Sort.SortFields.Add Key:=Range("G1:G" & [g65536].End(xlUp).Row), _
- SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
- With ActiveWorkbook.Worksheets("工作表1").Sort
- .SetRange Range("G1:G" & [g65536].End(xlUp).Row)
- .Header = xlYes
- .MatchCase = False
- .Orientation = xlTopToBottom
- .SortMethod = xlPinYin
- .Apply
- End With
- For i = 2 To [g65536].End(xlUp).Row
- name1 = name1 & Cells(i, 7) & ","
- Next
- name2 = Mid(name1, 1, Len(name1) - 1)
- With Range("G2:G" & [a65536].End(xlUp).Row).Validation
- .Delete
- .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
- xlBetween, Formula1:=name2
- .IgnoreBlank = True
- .InCellDropdown = True
- .InputTitle = ""
- .ErrorTitle = ""
- .InputMessage = ""
- .ErrorMessage = ""
- .IMEMode = xlIMEModeNoControl
- .ShowInput = True
- .ShowError = True
- End With
- Range("G2:G" & [g65536].End(xlUp).Row).ClearContents
- End Sub
複製代碼 |
|