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
但是运行后怎么也没办法导入图片。 展开
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
但是运行后怎么也没办法导入图片。 展开
3个回答
展开全部
试试:
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)
这句少了路径。改成上面那样。
展开全部
追加一下方法可以查出某一个文件夹下,含有某个字符的所有文件
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Excel 2016 怎么使用通配符查找数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询