VBA用户窗体获取文件名

时间:2014-09-16 15:51:40

标签: excel-vba get filenames userform vba

我构建了一个由2个CommandButtons组成的UserForm,每个CommandButtons都包含一个Picture。要求用户选择两个CommandButtons中的一个。我想将所选图片的文件名复制到工作表中的单元格。目前我无法弄清楚如何获取图片的文件名,因此我手动插入了每个CommandButton的文件名,如下所示:

Private Sub cmdQ2Opt1_Click()
    Worksheets("UserQuestionnaire").Range("C4").Value = "242.216.490"
End Sub

Private Sub cmdQ2Opt2_Click()
    Worksheets("UserQuestionnaire").Range("C4").Value = "354.129.401"
End Sub

如何对此进行编码,以便VBA自动复制图片的文件名?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

如果您在 Forms Designer 中分配图片,则不会存储路径,因为随后会从工作簿本身的存储中加载图像。

要保留您在运行时加载的路径:

dim path As string
path = "C:\...\foo.jpg"
set commandbutton1.Picture = loadpicture(path)

然后,您可以将路径存储在按钮Tag属性中:

commandbutton1.Tag = path

然后点击它时回读:

ActiveWorkbook.Sheets("UserQuestionnaire").Range("C4").Value = commandbutton1.Tag