Excel VBA 跨表 批量设置数据有效性, 急

2024-10-31 15:15:03
推荐回答(4个)
回答(1):

在 数据有效性引用 表的代码中,输入:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
iYcx
End Sub
sub iYcx()
Dim r As Long, c As Byte
With ActiveWorkbook.Names
For c = 1 To 3
r = Cells(65536, c).End(xlUp).Row
.Add Name:="ycx" & c, RefersToR1C1:="=数据有效性引用!R3C" & c & ":R" & r & "C" & c
Next
End With
end sub
先按F5运行一次 iYcx 程序
然后到 数据源 表,分别设置有效性 ycx1、ycx2、ycx3

回答(2):

vate Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target = "" Then
Exit Sub
End If
For i = 2 To ThisWorkbook.Sheets.Count
Set c = Sheets(i).Cells.Find(Target, ActiveCell, , xlWhole)
If Not c Is Nothing Then
Sheets(i).Select
Sheets(i).Range(c.Address).Activate
Exit Sub
End If
Next i
End Sub

'功能还比较单一,如有进一步要求,可以hi我

回答(3):

把excel附件发到我邮箱吧abdias520@163.com 思路:先定义范围,再设置数据有效性
可以百度HI我

回答(4):

这个不需要VBA就可以解决,HI我帮你弄

你也可以自己做,方法如下:
1, 公式-定义名称
2, 输入名称,比如 a , 输入公式
=Sheet1!$A$3:INDIRECT("a" & COUNT(Sheet1!$A$3:$A$1000)+2), 确定
3, 选中a3:a1000, 数据-数据有效性,选择序列,来源输入 =a
其它默认确定

B\C列类推

有问题,找百度,呵呵,我给你的也是百度来的,你可以参考下别人的,还有用offset的,看你等级那么高,我就不解释了...
http://zhidao.baidu.com/question/53692917.html?si=7