Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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
如何创建一个vba模块,该模块将根据标题名称高亮显示彼此不相邻的两列_Vba_Excel - Fatal编程技术网

如何创建一个vba模块,该模块将根据标题名称高亮显示彼此不相邻的两列

如何创建一个vba模块,该模块将根据标题名称高亮显示彼此不相邻的两列,vba,excel,Vba,Excel,这是一个新概念,但现在我需要对大量数据页面进行排序,我希望能够根据标题名称突出显示两个特定列。现在我在网上找到了这个,这很好,除了我必须搜索两个不同的专栏。任何帮助都将不胜感激 Sub FindAddressColumn() 'Updateby Extendoffcie Dim xRg As Range Dim xRgUni As Range Dim xFirstAddress As String Dim xStr As String On Er

这是一个新概念,但现在我需要对大量数据页面进行排序,我希望能够根据标题名称突出显示两个特定列。现在我在网上找到了这个,这很好,除了我必须搜索两个不同的专栏。任何帮助都将不胜感激

Sub FindAddressColumn()

   'Updateby Extendoffcie

    Dim xRg As Range
    Dim xRgUni As Range
    Dim xFirstAddress As String
    Dim xStr As String
    On Error Resume Next
    xStr = "Name"
    Set xRg = Range("A1:P1").Find(xStr, , xlValues, xlWhole, , , True)
    If Not xRg Is Nothing Then
        xFirstAddress = xRg.Address
        Do
            Set xRg = Range("A1:P1").FindNext(xRg)
            If xRgUni Is Nothing Then
                Set xRgUni = xRg
            Else
                Set xRgUni = Application.Union(xRgUni, xRg)
            End If
        Loop While (Not xRg Is Nothing) And (xRg.Address <> xFirstAddress)
    End If
    xRgUni.EntireColumn.Select
End Sub
子FindAddressColumn()
'由Extendoffcie更新
Dim xRg As范围
Dim xRgUni As范围
Dim xFirstAddress作为字符串
Dim xStr作为字符串
出错时继续下一步
xStr=“Name”
设置xRg=Range(“A1:P1”)。查找(xStr,xlValues,xlWhole,True)
如果不是,那么xRg什么都不是
xFirstAddress=xRg.Address
做
设置xRg=范围(“A1:P1”)。FindNext(xRg)
如果xRgUni什么都不是,那么
设置xRgUni=xRg
其他的
设置xRgUni=Application.Union(xRgUni,xRg)
如果结束
循环While(非xRg即无)和(xRg.Address xFirstAddress)
如果结束
xRgUni.entireclumn.Select
端接头

命令顺序错误。在联合之前,您可以使用
.FindNext
覆盖xRg。试着这样做:

 If Not xRg Is Nothing Then
    xFirstAddress = xRg.Address
    Do
        ' Set xRg = Range("A1:P1").FindNext(xRg)   --- moved below
        If xRgUni Is Nothing Then
            Set xRgUni = xRg
        Else
            Set xRgUni = Application.Union(xRgUni, xRg)
        End If
        Set xRg = Range("A1:P1").FindNext(xRg)   ' --- moved here
    Loop While (Not xRg Is Nothing) And (xRg.Address <> xFirstAddress)
End If
如果不是,那么xRg什么都不是
xFirstAddress=xRg.Address
做
'设置xRg=范围(“A1:P1”)。FindNext(xRg)---移动到下面
如果xRgUni什么都不是,那么
设置xRgUni=xRg
其他的
设置xRgUni=Application.Union(xRgUni,xRg)
如果结束
设置xRg=Range(“A1:P1”)。FindNext(xRg)“”---移动到此处
循环While(非xRg即无)和(xRg.Address xFirstAddress)
如果结束

每个工作表中搜索的列名是否只显示一次?