String 在Excel VBA中搜索范围
我有一个字符串数组,数组的每个插槽中都有一个字符串格式的“列范围”,例如“B:J”“k:W”“AC:AG” 正在向该方法传递一个字符串,该字符串是一个列名,例如“C” 我需要搜索看看“C”是否在“B:J”内 所以基本上它需要检查“C”是否在“BCDEFGHIJ”中,它是什么,它是否从一个循环中断 但是如果我输入“A”,它应该进入阵列中的下一个插槽String 在Excel VBA中搜索范围,string,excel,vba,search,range,String,Excel,Vba,Search,Range,我有一个字符串数组,数组的每个插槽中都有一个字符串格式的“列范围”,例如“B:J”“k:W”“AC:AG” 正在向该方法传递一个字符串,该字符串是一个列名,例如“C” 我需要搜索看看“C”是否在“B:J”内 所以基本上它需要检查“C”是否在“BCDEFGHIJ”中,它是什么,它是否从一个循环中断 但是如果我输入“A”,它应该进入阵列中的下一个插槽 Thank此函数将返回数组中单个列包含在范围中的位置。它使用Intersect特性确定两个范围是否相交 Function ArrayPos(sColL
Thank此函数将返回数组中单个列包含在范围中的位置。它使用Intersect特性确定两个范围是否相交
Function ArrayPos(sColLetter As String, vaRanges As Variant) As Long
Dim i As Long
Dim sh As Worksheet
Dim lReturn As Long
Set sh = Sheet1
For i = LBound(vaRanges) To UBound(vaRanges)
If Not Intersect(sh.Columns(sColLetter), sh.Columns(vaRanges(i))) Is Nothing Then
lReturn = i
Exit For
End If
Next i
ArrayPos = lReturn
End Function
它是这样使用的,例如从即时窗口
?arraypos("M",array("B:J","K:W"))
1
您可能希望添加一些错误检查,以确保参数可以转换为范围,但我将留给您。您可以在没有范围对象的情况下,通过在冒号上拆分范围字符串并比较字母的ASCII值来执行此操作。您可以查看 返回当前列号,只需对范围B:J应用相同的列号,检查J(10)>C(3)>B(2) 那么你可以说它在这个范围之内 在需要的情况下,用我给你的链接,以其他方式围绕这个函数
ConvertToAlphaColumnReferenceFromInteger(sheet.Application.ActiveCell.Column)
为C#/.NET完成您是使用sheet
Range
对象数组操作,还是只给我们举了一个将数据与列进行比较的示例?你有没有尝试过任何东西,任何你可以与我们分享的代码??
ConvertToAlphaColumnReferenceFromInteger(sheet.Application.ActiveCell.Column)