数据验证excel vba
从上面的数据来看,如何从sheet2中获取数据验证范围,因为它适用于sheet1(相同的工作表)?请求学习我想说,有两个简单的选项可以将数据从另一张工作表中拉到数据验证excel vba,excel,vba,Excel,Vba,从上面的数据来看,如何从sheet2中获取数据验证范围,因为它适用于sheet1(相同的工作表)?请求学习我想说,有两个简单的选项可以将数据从另一张工作表中拉到验证中。添加方法。以下只是一个示例,向您展示了该技术: Option Explicit Sub MakeValidationList() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Sheet1") Dim dataRange As Range
验证中。添加
方法。以下只是一个示例,向您展示了该技术:
Option Explicit
Sub MakeValidationList()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim dataRange As Range
Set dataRange = ws.Range("A1:A3,C1:C3")
Dim dataList As String
Dim entry As Variant
For Each entry In dataRange
dataList = dataList & entry.Value & ","
Next entry
'--- remove the last trailing comma
dataList = Left$(dataList, Len(dataList) - 1)
Dim dropDownCell As Range
Set dropDownCell = ws.Range("B3:B10")
dropDownCell.Validation.Delete
dropDownCell.Validation.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Formula1:=dataList
End Sub
使用选项1,您可以将任何2D数组添加到验证列表中(如果内存中已经有2D数组,请删除应用程序。Transpose
)
使用选项2,您可以引用连接公式中的另一个工作表。我尝试。运行时错误1004应用程序定义或对象定义错误,您可以将vba excel示例发送给我ownindra10@gmail.com
Sub Test()
'Set your two worksheets
Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Worksheets("Sheet1")
Dim ws2 As Worksheet: Set ws2 = ThisWorkbook.Worksheets("Sheet2")
'Set your range objects where you want a validation list
Dim rng1 As Range: Set rng1 = ws1.Range("A1")
Dim rng2 As Range: Set rng2 = ws1.Range("B1")
'Set your source range
Dim rng3 As Range: Set rng3 = ws2.Range("A1:A3")
'Set an array (for option 1)
Dim arr As Variant: arr = rng3.Value
'Option 1:
rng1.Validation.Add xlValidateList, Formula1:=Join(Application.Transpose(arr), ",")
'Option 2:
rng2.Validation.Add xlValidateList, Formula1:="='" & ws2.Name & "'!" & rng3.Address
End Sub