如何将范围声明为Path?

时间:2014-12-04 02:11:48

标签: excel excel-vba vba

我的代码需要一个解决方案,我需要一个" MyDir"从Sheet1.Range读取Path(" A1")。这是从" MyDir"加载图像的代码。 +图像名称,但只有在您输入MyDir的代码时才有效:* C:\ Users \ Me \ Desktop *。但我不希望这样,我想* {C:\ Users \ Me \ Desktop *从Sheet1.Range("A1")读取,有人可以帮我这个代码:

Dim MyDir As Range
Set MyDir = Sheet1.Range("A1")
If Len(Dir("MyDir" & TextBox1.Text & ".jpg")) > 0 Then
    Image1.Picture = LoadPicture("MyDir" & TextBox1.Text & ".jpg")
Else
    Image1.Picture = LoadPicture("")
End If

2 个答案:

答案 0 :(得分:1)

MyDir周围不需要引号。

我还使用Dir() <> ""

测试文件是否存在

这里我的图片名为“code_pic.jpg”。

Sub image()

    Dim MyDir As Range
    Set MyDir = Sheet1.Range("A1")

    If Dir(MyDir) <> "" Then
        Set Sheet1.Image1.Picture = LoadPicture(MyDir & "\code_pic.jpg")
    Else
        Set Sheet1.Image1.Picture = LoadPicture("")
    End If

End Sub

答案 1 :(得分:0)

变量MyDir在引号中。

Sub test()

Dim fullpath_and_name As String

Dim MyDir As Range

Set MyDir = Sheet1.Range("A1")

fullpath_and_name = MyDir & "\" & "test.bmp"

Debug.Print Dir(fullpath_and_name)

If Len(Dir(MyDir & "\" & "test.bmp")) > 0 Then

  Image1 = LoadPicture(MyDir & "\" & "test.bmp")

Else

Image1 = LoadPicture("")

End If

End Sub

我无法使Image1.Picture工作,但代码的Len(...)部分工作,所以剩下的只是阅读图片。