|
代码内容:With Range("A2:A100")引用范围是当前表格A2:A100
希望能修改为:引用范围改为另一个表,例如Sheet2!A2:A100,请问如何修改
以下为代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RowNum, ListRows, ListStartRow, ListColumn As Integer
Dim TheList As String
Dim Repeated As Boolean
If Target.Column <> 4 Then Exit Sub
With Range("A2:A100")
ListRows = .Rows.Count
ListStartRow = .Row
ListColumn = .Column
End With
For RowNum = 0 To ListRows - 1
Repeated = False
If Not IsEmpty(Cells(ListStartRow + RowNum, ListColumn)) Then
For i = 0 To RowNum - 1
If Cells(ListStartRow + RowNum, ListColumn) = Cells(ListStartRow + i, ListColumn) Then
Repeated = True
Exit For
End If
Next i
If Not Repeated Then TheList = TheList & Cells(ListStartRow + RowNum, ListColumn) & ","
End If
Next RowNum
TheList = Left(TheList, Len(TheList) - 1)
With Range("$D$2").Validation
.Delete
.Add _
Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=TheList
End With
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim TheList As String, i&
If Intersect(Target, [d2:d10]) Is Nothing Then Exit Sub
Set d = CreateObject("scripting.dictionary")
arr = Range("a2:a" & [a65536].End(3).Row)
For i = 1 To UBound(arr)
If Len(arr(i, 1)) And InStr(TheList & ",", "," & arr(i, 1) & ",") = 0 Then TheList = TheList & "," & arr(i, 1)
Next
With Target.Validation
.Delete
.Add xlValidateList, , , Mid(TheList, 2)
End With
End Sub
|
|