2016-03-24 55 views
0

我在MacBook上使用優勝美地10.10.5版的Word for Mac 2011。在Word中,我試圖創建一個宏,它將在Word文檔中插入名爲home.gif的文件。 home.gif位於名爲「List」的目錄中,該目錄是我的桌面(Desktop \ Kindle \ List)上的「Kindle」的子目錄。Word for Mac Macro

記錄的步驟是:插入>>圖片>>從文件圖片... >>桌面>>點燃>>列表>> home.gif >>插入

下面是結果:

Selection.InlineShapes.AddPicture filename:= _ 
    「/Users/macbookpro/Desktop/Kindle/List/home.gif」, LinkToFile=False._ 
    SaveWithDocument=True 
Selection.InlineShapes.AddPicture filename:=」, LinkToFile:=False, _ 
    SaveWithDocument:=True 

另一個論壇上,我讀到了連字符應該是冒號,所以我改成了這樣:

Selection.InlineShapes.AddPicture filename:= _ 
    「Users.macbookpro.Desktop.Kindle.List.home.gif」, LinkToFile=False._ 
    SaveWithDocument=True 
Selection.InlineShapes.AddPicture filename:=」, LinkToFile:=False, _ 
    saveWithDocument:=True 

那長大的:「‘不能在中斷模式下執行代碼’。

+0

':'<這是一個冒號。 '。<這是一段時期。此外,你可以使用'Application.PathSeparator' –

+1

...這是一個連字符>'-'。宏記錄吐出的Linux風格文件路徑應該可以正常工作(儘管區分大小寫)。你的問題到底是什麼?你有錯誤嗎? – Comintern

+1

記錄的問題是什麼?它在哪一行發生錯誤? – Rahul

回答

1

你需要的是像

Selection.InlineShapes.AddPicture filename:= _ 
    "Macintosh HD:Users:macbookpro:Desktop:Kindle:List:home.gif", _ 
    LinkToFile:=False, _ 
    SaveWithDocument:=True 

的「Macintosh HD」是卷(驅動器),該文件是對的名稱。你的驅動器可能被稱爲別的東西。如果是這樣,您需要將「Macintosh HD」更改爲該名稱。您可以通過右鍵單擊Finder中的home.gif文件並單擊Get Info選項來查看完整路徑名稱。看看「哪裏」,你會看到文件夾的路徑,但用箭頭代替冒號(:)

現在Mac OS X通常更傾向於使用正斜線的Unix風格路徑風險。 (由於歷史原因,它們在Applescript中被稱爲「POSIX」文件名)。但是,Microsoft Office for Mac 2011中有一些相當老的代碼,並不是所有的東西都可以識別POSIX文件名。在這種情況下,Word的宏記錄器有兩個錯誤:

  • 它記錄一個POSIX路徑+文件名。該POSIX路徑+文件名將是您文件的正確名稱,但AddPicture實際上不能使用POSIX名稱。使用其他格式的文件名(「HFS」)和冒號有效,但您需要完整的路徑名稱,因爲我曾經說過
  • 出於某種原因,它會記錄第二個AddPicture語句,其中包含一個 空路徑名(「」) 。這不起作用,你應該刪除它。

請注意,命名參數如filename,LinkToFile和SaveWithDocument必須後跟「:=」,而不是「=」。因此,你需要

SaveWithDocument:=True 

SaveWithDocument=True 

你得到的消息「無法在中斷模式下執行代碼」的原因,通常是因爲你已經把VBA在調試模式,而不是停止執行。當你這樣做時,它確實在等待繼續。但是,如果您嘗試啓動另一個宏,則會收到該消息。