EXCEL VBA 的通配符问题

为想使用EXCELVBA依据图片名称批量导入文件夹内的图片,但是图片名称中只有一个数字是不变的,该数字前后不规律。因此要通配符。代码如下:Sub插入图片500倍()Dim... 为想使用EXCEL VBA 依据图片名称批量导入文件夹内的图片,但是图片名称中只有一个数字是不变的,该数字前后不规律。因此要通配符。代码如下:
Sub 插入图片500倍()
Dim strX As String
For I = 1 To Worksheets.Count - 2
strX = "F:\验收报告\报告备份\5月14日\500\500\" & "*" & Worksheets(I).Cells(8, 6) & "*"
'(就是这个地方Worksheets(i).cells(8,6)就是那个数字,前后两个通配符*。)
If Dir(strX) = "" Then
Sheets(I).Image2.Picture = LoadPicture
MsgBox "找不到铸件号:" & ActiveWorkbook.Worksheets(I).Range("F8") & "500倍图片"
Exit Sub
Else
Sheets(I).Image2.Picture = LoadPicture(strX)
End If
Next
End Sub
但是运行后怎么也没办法导入图片。
展开
 我来答
crazy0qwer
推荐于2016-01-05 · TA获得超过3299个赞
知道大有可为答主
回答量:4020
采纳率:71%
帮助的人:1285万
展开全部

试试:

Sub 插入图片500倍()
    Dim strX        As String
    Dim strY        As String
    Dim FileName    As String
    strX = "F:\验收报告\报告备份\5月14日\500\500\"
    For I = 1 To Worksheets.Count - 2
        strY = Worksheets(I).Cells(8, 6)
        FileName = Dir(strX & "*" & strY & "*")
        If FileName = "" Then
            Sheets(I).Image2.Picture = LoadPicture
            MsgBox "找不到铸件号:" & strY & "500倍图片"
            Exit Sub
        Else
            Sheets(I).Image2.Picture = LoadPicture(FileName)
        End If
    Next
End Sub
更多追问追答
追问
还是不行。还是找不到。好像加了“*”的直接就想当于一个字符串一样。为那个文件夹里是肯定存在名称里含有这个数字的图片。
追答

抱歉,Sheets(I).Image2.Picture = LoadPicture(strX & FileName)

这句少了路径。改成上面那样。


townsin
2013-07-31 · TA获得超过452个赞
知道小有建树答主
回答量:594
采纳率:50%
帮助的人:505万
展开全部

追加一下方法可以查出某一个文件夹下,含有某个字符的所有文件

Private Function getFileName(strDir As String, strNum As String) As Collection
Dim fso, objFolder, objFile
Dim rowIdx As Long
    Set getFileName = New Collection
    On Error Resume Next
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set objFolder = fso.GetFolder(strDir)
    
    If (objFolder Is Nothing) Then
        Set fso = Nothing
        Exit Function
    End If
    
    For Each objFile In objFolder.files
        If (InStr(objFile.Name, strNum) > 0) Then
            Call getFileName.Add(objFile.Name)
        End If
    Next
    
    Set fso = Nothing
    Set objFolder = Nothing
End Function
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
地图演义
2020-12-31 · 制作历史演义相关地图视频
地图演义
采纳数:0 获赞数:66

向TA提问 私信TA
展开全部

Excel 2016 怎么使用通配符查找数据

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式