Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 影响如何添加验证的超链接_Excel_Vba - Fatal编程技术网

Excel 影响如何添加验证的超链接

Excel 影响如何添加验证的超链接,excel,vba,Excel,Vba,我注意到,若我在另一列的验证列表之前向表列添加超链接,它将影响如何添加验证列表 例如: RangeTarget(c, r).Hyperlinks.Add Anchor:=RangeTarget(c, r), Address:=hyperlink, TextToDisplay:="Link" 还有一个: RangeTarget(c, r).Validation.Add Type:=xlValidateList, Formula1:=celldata 如果我不添加超链接,celldata可以用“

我注意到,若我在另一列的验证列表之前向表列添加超链接,它将影响如何添加验证列表

例如:

RangeTarget(c, r).Hyperlinks.Add Anchor:=RangeTarget(c, r), Address:=hyperlink, TextToDisplay:="Link"
还有一个:

RangeTarget(c, r).Validation.Add Type:=xlValidateList, Formula1:=celldata
如果我不添加超链接,celldata可以用“,”分隔,如果我添加超链接,celldata可以用“;”分隔作为excel的本地分隔符。 请有人重试并确认

实际代码如下:

RngTarget(2 + i, mvaln).Hyperlinks.Add Anchor:=RngTarget(2 + i, mvaln), Address:=rsrows(j, i), TextToDisplay:="Link"
RngTarget(2 + i, mvaln).Validation.Add Type:=xlValidateList, Formula1:=rsrows(j, i)
我假设它会影响RngTarget范围,如果我同时使用它。我假设如果我在中间重新定义了RngTarget,那么我就可以用“,”分隔项目。所以我猜在添加超链接后,范围中有一些隐藏的区域设置正在更改

编辑: 好的,我把问题简化成这个。
如果我在添加验证列表之前在
RngTarget(2+I,mvaln)
上添加.ClearHyperlinks,它显然会通过“,”字符而不是“;”分隔列表

所以基本上如果有人知道这是否是一个bug

我在表上运行此操作(选择2列后):

Test1将正确列出下拉项,而test2不会。对于test2,我必须使用“;”分隔符。

在添加验证后向列添加超链接不会影响这一点。此外,这不仅在桌子上,而且在射程上都被窃听

Sub test()
    Selection.ClearHyperlinks
    Selection.Validation.Delete
    Selection.Columns(2).Validation.Add Type:=xlValidateList, Formula1:="a, b, c, d, e"
End Sub
Sub test2()
    Selection.ClearHyperlinks
    Selection.Validation.Delete
    Selection.Columns(1).Hyperlinks.Add Anchor:=Selection.Columns(1), Address:="no address", TextToDisplay:="Link"
    Selection.Columns(2).Validation.Add Type:=xlValidateList, Formula1:="a, b, c, d, e"
End Sub