Vba 在Excel用户表单中嵌入URL中的图像
我是VBA的新手,一直在尝试解决这个问题,但没有任何运气 我正在尝试创建一个产品目录,并构建了一个用户表单,允许在电子表格的第一个空白行输入新产品。到目前为止还不错 然而,我陷入困境的地方是,我需要在用户表单(例如)中嵌入url中的产品图像,以便能够将文件从一台计算机移植到另一台计算机,而不会丢失已加载到电子表格中的图像 理想情况下,我根本不想将URL本身插入电子表格。当用户点击Submit时,我希望userform从online中提取图像并将其插入电子表格第一个空白行的A列中,并将其调整为特定的宽度/高度。(待定) 我发现问题有点像我需要的&&。这些问题要么没有得到回答,要么我不知道如何使它们符合我的需要Vba 在Excel用户表单中嵌入URL中的图像,vba,image,excel,userform,Vba,Image,Excel,Userform,我是VBA的新手,一直在尝试解决这个问题,但没有任何运气 我正在尝试创建一个产品目录,并构建了一个用户表单,允许在电子表格的第一个空白行输入新产品。到目前为止还不错 然而,我陷入困境的地方是,我需要在用户表单(例如)中嵌入url中的产品图像,以便能够将文件从一台计算机移植到另一台计算机,而不会丢失已加载到电子表格中的图像 理想情况下,我根本不想将URL本身插入电子表格。当用户点击Submit时,我希望userform从online中提取图像并将其插入电子表格第一个空白行的A列中,并将其调整为特定
这是我现在的代码,但是它显示了一个运行时424对象错误,我显然错过了一些东西>我不确定为什么会出现运行时424对象错误。你能指定哪行代码给你错误吗 我想说这个链接有你真正需要的一切 您应该为图片声明一个对象变量
Dim myPicture As Picture 'embedded pic
每次插入图片时重复此步骤:
您需要通过设置myPicture对象变量的值将图片插入工作表。在您的情况下,可能是这样的:
Set myPicture = Pictures.Insert(txtImgUrl.Value)
然后添加一些关于如何在工作表上定位此图片的详细信息
With myPicture
.ShapeRange.LockAspectRatio = msoFalse 'Unlock aspect ratio
.Width = ws.Range("A" & LastRow).Width 'Picture width equal to cell width
.Height = ws.Range("A" & LastRow).Height 'Picture height equal to cell height
.Top = Rows(ws.Range("A" & LastRow).Row).Top 'Picture aligned to the top edge of the cell
.Left = Columns(ws.Range("A" & LastRow).Column).Left 'Picture aligned to the left edge of the cell
End With
试试看。你好@AdamW,谢谢回复!我试图按照您的建议更新代码,但当我在设置myPicture=Pictures.Insert(txtImgUrl.Value)时运行它时,它会一直给我运行时424对象错误。我检查了拼写和所有的东西,所以没问题。我已按建议宣布了Dim。我真的不确定哪里出了问题?好吧,也许URL有问题。你检查过txtImgUrl.Value里面有什么吗?试着一步一步地使用F5,看看里面有什么。当我进入F5时,行“Set myPicture=Pictures.Insert(txtImgUrl.Value)”,myPicture=nothing&txtImgUrl=我从shutterstock输入测试的url。
With myPicture
.ShapeRange.LockAspectRatio = msoFalse 'Unlock aspect ratio
.Width = ws.Range("A" & LastRow).Width 'Picture width equal to cell width
.Height = ws.Range("A" & LastRow).Height 'Picture height equal to cell height
.Top = Rows(ws.Range("A" & LastRow).Row).Top 'Picture aligned to the top edge of the cell
.Left = Columns(ws.Range("A" & LastRow).Column).Left 'Picture aligned to the left edge of the cell
End With