使用VBA宏打开链接到图片

时间:2015-08-25 19:08:35

标签: image excel-vba hyperlink vba excel

我的这个程序的目标是通过选择活动行中的单元格值来打开文件夹中的图片。

picture = Cells(ActiveRow, 6).Value

我收到运行时错误' 1004'应用程序定义或对象定义的错误

这是我的完整代码

Sub Picture_Click()

   Sheets("Master").Unprotect Password:="Conti1"
   Sheets("Records").Unprotect Password:="Conti1"

   Dim picture As String
   Dim ActiveRow As Long


   Worksheets("Master").Activate

        ActiveRow = Rows(ActiveCell.Row).Select
        picture = Cells(ActiveRow, 6).Value

ChDir"P:\926_TM\03_LocalExchange\Tracking_and_Labeling\LabEquipment\pictures"

    Workbooks.Open picture

End Sub

我正在尝试使用所选单元格中的值作为所选文件夹中图片文件的名称,即我要打开的图片。

我也为ActiveRow

获得了-1的值

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:1)

ActiveRow是Long,因此您无法选择一行并说这是一个数字。你只需写

ActiveRow = ActiveCell.Row

在即时窗口中,如果你写?行(ActiveCell.Row)。选择,它将返回一个布尔值,而不是一个数字。

同样要打开文件,您应该使用FollowHyperlink方法:

来自msdn:

ActiveWorkbook.FollowHyperlink Address:="http://example.microsoft.com"

您的链接当然会替换示例中的链接。

picture = "P:\926_TM\03_LocalExchange\Tracking_and_Labeling\LabEquipment\pictures\" & Cells(ActiveRow, 6).Value
ActiveWorkbook.FollowHyperlink Address:=picture

答案 1 :(得分:1)

您无法使用Workbooks.Open方法打开图片,因为该方法专门用于打开工作簿。

一种选择是使用Shell命令打开图片。在此示例中,我将打开位于名为Test.png

的图片文件夹中的图片
Private Sub OpenPic()
        Shell "mspaint.exe C:\Users\USERNAME\Pictures\Test.png"
End Sub

这将打开画中的图片。

将此方法适用于您的代码:

Sub Picture_Click()

   Sheets("Master").Unprotect Password:="Conti1"
   Sheets("Records").Unprotect Password:="Conti1"

   Dim picture As String
   Dim ActiveRow As Long


   Worksheets("Master").Activate

   ActiveRow = ActiveCell.Row
   picture = Cells(ActiveRow, 6).Value

   Shell "mspaint.exe P:\926_TM\03_LocalExchange\Tracking_and_Labeling\LabEquipment\pictures\" & picture

End Sub

这假定Activerow, 6中的值包含文件扩展名。

顺便说一下:我想补充一点,你根本不需要定义ActiveRow,只能按原样使用它。

所以这个:

ActiveRow = ActiveCell.Row
picture = Cells(ActiveRow, 6).Value

可以改写为:

picture = Cells(ActiveCell.Row, 6).Value

您可以完全省略ActiveRow变量。