Ⅰ Excel中VBA如何区分正常的图片
需要上图文件附到163箱mijizili
或参考下面
Excel怎样查找图片
Ⅱ Excel vba 不用打开或插入文件jpg,tif文件,怎么读取指定图片文件的尺寸、分辨率 实在是没财富了。
Function get_file_dim(ByVal filepath As String)
'水平分辩率 161 宽度 162 垂直分辩率 163 高度 164 尺寸 31
arr = [{161,162,163,164,31}]
Dim brr()
ReDim brr(1 To UBound(arr))
Set ObiFolder = CreateObject("shell.Application").Namespace(Left(filepath, InStrRev(filepath, "\")))
For i = 1 To UBound(arr)
brr(i) = ObiFolder.getdetailsof(ObiFolder.Items.Item(Right(filepath, Len(filepath) - InStrRev(filepath, "\"))), arr(i))
Debug.Print brr(i)
Next i
get_file_dim= brr
End Function
用这个就可以了,输入文件的完整路径,得到一个数组,注意包含数字以外的字符,这个函数是参考以下代码:
Sub Fileinfo()
Sheet1.Cells.ClearContents
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
If fd.Show = -1 Then GetDirectory = fd.SelectedItems(1)
Dim c As Long, R As Long, i As Long
Dim FileName As Object, ObjShell As Object, ObiFolder As Object
Set ObjShell = CreateObject("shell.Application")
Set ObiFolder = ObjShell.Namespace(GetDirectory)
On Error Resume Next
c = 0
For i = 0 To 287
If i = 27 Or i = 28 Or i = 29 Or i = 31 Then
Else
c = c + 1
Cells(1, c) = ObiFolder.getdetailsof(ObiFolder.Items, i)
End If
Next i
R = 1
For Each FileName In ObiFolder.Items
c = 0
R = R + 1
For i = 0 To 287
If i = 27 Or i = 28 Or i = 29 Or i = 31 Then
Else
c = c + 1
Cells(R, c).Activate
Debug.Print ObiFolder.getdetailsof(FileName, i)
Cells(R, c) = ObiFolder.getdetailsof(FileName, i)
End If
Next i
Next FileName
ActiveSheet.ListObjects.Add xlSrcRange, [a1].CurrentRegion
Set fd = Nothing
End Sub
如果函数输出的和我注释的不一样,那么你用上面这段重新确认一下属性的编号
Ⅲ VBA excel 查找图片文件夹下的图片文件,并打开。
Subpng()
Dimpn'定义文件名称
Dimi
pn=Dir("C:UsersdxzyDesktop新建文件夹*.png")'查找第一个文件名称
i=1
DoWhilepn<>""
Range("a"&i)=pn
'excel打开图片文件是什么鬼?是插入图片吗?
pn=Dir'查找后续文件名称
i=i+1
Loop
EndSub
Ⅳ excel 如何用VBA识别当前复制内容是否为图片
Excel复制时,复制对象任然处在选中状态,借此判断选中内容是否是需要判断的类型,图片为shape对象中的一种,其类型可通过shape.type进行判断,代码及类型详见下图:
判断选中对象是否为图片
Ⅳ VBA 在图片文件夹中,查找文件名包含A列文本的图片,并复制到指定文件夹
Sub导出图片()
'先清空目标文件夹
DimFilenameAsString
Shell"cmd/c""del/s/qC:UsersAdministratorDesktop导出的*.jpg"""'用DOS命令删除输出文件夹下(包含子文件夹,但不删除子文件夹)的所有jpg文件
Application.ScreenUpdating=False
DimyAsInteger'y是行
DimFilPathAsString'这个是图片所在的父文件夹
DimnewfilepathAsString'图片要复制到这里
DimrngAsRange
DimsAsString
WithSheet1'选择目标sheet
Fory=2To10'从第2行到10行
FilPath="""D:Dropbox产品jpg"&.Cells(y,1).Text&"*.jpg"""
'用XCOPY命令,复制满足条件的文件包含子文件夹,同时也会在目标文件夹中建立相同的子文件夹
'FilePath中使用了通配符,假如产品是:A001,则可以复制"A001红色12cm”,"A001红色15cm”,"A001黑色12cm”,"A001白色15cm”,
Shell"cmd/c""x/s/y"&FilPath&"C:UsersAdministratorDesktop导出的"""
Next
.Cells(1,1).Select
EndWith
Application.ScreenUpdating=False
EndSub
Ⅵ Excel 如何用vba来实现对图片的显示
1、把图片放在某个文件夹内。
2、用VBA程序读取这个文件夹的文件。
3、把图片在相应的控件显示。
Ⅶ 怎么用VBA在EXCEL表格中检索对应的产品编号的产品图片,求指教
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Myname As String
Dim Mypath As String
Dim Picname() As String
On Error Resume Next
Mypath = "C:\Users\Administrator\Pictures\图片\"
If Target.Count = 1 And Target.Column = 1 Then
Myname = Dir(Mypath & Target.Value & "*.jpg", 0)
i = 0
For k = 0 To 10
ActiveSheet.Shapes("B" & Target.Row & k).Delete
If Err.Number = 440 Then
Exit For
End If
Next k
Do While Myname <> ""
ReDim Preserve Picname(i)
Picname(i) = Myname
i = i + 1
Myname = Dir
Loop
For j = 0 To i - 1
With ActiveSheet.Pictures.Insert(Mypath & Picname(j))
.Top = Target.Offset(0, 1).Top
.Left = Target.Offset(0, 1).Left + j * Target.Offset(0, 1).Width / (i)
.ShapeRange.LockAspectRatio = msoFalse
.Height = Target.Offset(0, 1).Height
.Width = Target.Offset(0, 1).Width / (i)
.Name = "B" & Target.Row & j
End With
Next j
End If
End Sub
在你使用的表格的CHANGE事件,添加上面代码看看是不是符合要求。
Ⅷ excel 用 vba 图片操作
图片有名字的
用shapes("名字") 应该可以
如果你是手动导入,则必须手动修改名字
如果你是代码导入的,也要设置名字
个人经验,希望采纳
Ⅸ 怎么在EXCEL的VBA窗口控件里按另外一个复选框内容提示显示图片
发给你了,你自己看下代码,修改成你想要的加6个复选框的效果,如果有问题,再联系我帮你修改:在A1格输入你的存图片的文件夹名称(也可以不用输在A1,直接把路径写在程序里面),然后点打开窗体按钮,窗体中复选框1中就会自动把文件夹下的所有图片名称加进来,然后你选择哪个名称就会显示对应的图片:
PrivateSubComboBox1_Change()
OnErrorResumeNext
'可以直接把你的文件夹路径写到程序里mypath后面
mypath=Trim(ThisWorkbook.Worksheets("path").Range("a1"))
IfRight(mypath,1)<>""Thenmypath=mypath&""
UserForm1.Image1.Picture=LoadPicture(mypath&ComboBox1)
EndSub
PrivateSubUserForm_Initialize()
OnErrorResumeNext
WithThisWorkbook.Worksheets("path")
'可以直接把你的文件夹路径写到程序里mypath后面
mypath=Trim(.Range("a1"))
IfRight(mypath,1)<>""Thenmypath=mypath&""
myfile=Dir(mypath&"*.jpg")
DoWhilemyfile<>""
UserForm1.ComboBox1.AddItemmyfile
myfile=Dir
Loop
UserForm1.ComboBox1.ListIndex=0
EndWith
EndSub
Ⅹ EXCEL VBA 显示图片
有两种情况:
如果图片显示到整个单元格的话,可以直接在Y2单元格写没有这个图片。
然后如果有图片会把字覆盖,看不见,没有图片则可以看见字,不需要代码写这个。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Count = 1 And Target.Column = 4 Then
On Error Resume Next
Shapes("@@@@@").Delete
If Dir(ThisWorkbook.Path & "" & Target.Value & ".jpg") <> "" Then
[Y2] = ""
ActiveSheet.Shapes.AddPicture(ThisWorkbook.Path & "" & Target.Value & ".jpg", 1, 1, [Y2].Left + 5, [Y2].Top + 5, [Y2].Width - 10, [Y2].Height - 10).Name = "@@@@@"
Else
[Y2] = "没有这个图片"
End If
End If
End Sub