如何解决VBA 过滤器函数在从范围创建的数组上引发“运行时错误 13:类型不匹配”错误
我正在尝试使用 filter 函数在数组中搜索子字符串,然后创建一个包含该子字符串的新字符串数组。当我尝试时,我收到一条类型不匹配运行时错误 13 消息。我读过过滤器只能用于一维数组,并且填充一个具有范围的数组会自动创建一个二维数组,但我想我会读到如果我转置数组,我可以解决这个问题创建时。我想我可能错了,因为它似乎仍然不适合我。
在错误发生之前,headerTitles 数组填充了以下字符串:
- 接种日期
- 年
- 月
- 天
- 网站
- 剂量
- 疫苗
- 疫苗接种设置
这都是使用 Excel 2010。
感谢您的帮助。
Sub dateInHeaderTitle()
Dim ws As Worksheet
Dim lastCol As Integer
Dim headerTitles As Variant
Dim dateTitles As Variant
Set ws = ThisWorkbook.Worksheets(1)
With ws
lastCol = .Cells(1,.Columns.Count).End(xlToLeft).Column
headerTitles = Application.Transpose(.Range(.Cells(1,1),.Cells(1,Lastcol)).Value2)
End With
dateTitles = Filter(headerTitles,"date",vbTextCompare)
Set ws = Nothing
End Sub
解决方法
为了获得一个一维数组,从一个列范围开始,你应该使用:
headerTitles = Application.Transpose(Application.Transpose(.Range(.cells(1,1),.cells(1,lastCol)).Value2))`
Debug.Print Join(headerTitles,"|") 'just to see it...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。