将.emf文件粘贴到word中的简单代码:
Sub LoopEMF()
Dim sPic As String
Dim sPath As String
sPath = "C:\Users\me\Desktop\Test2\"
sPic = Dir(sPath & "*.emf")
Do While sPic <> ""
Selection.TypeParagraph
Selection.InlineShapes.AddPicture _
FileName:=sPath & sPic, _
LinkToFile:=False, SaveWithDocument:=True
sPic = Dir
Selection.TypeParagraph
Loop
End Sub
我只想查看word文件(打开)所在的活动目录,而不是指定的目录。很多搜索都没有发现 - 这令人惊讶,令人尴尬,可能意味着我没有使用正确的关键词。
帮助?
答案 0 :(得分:0)
当我打开Excel文档D:\ db \ tmp \ test1.xlsm:
时CurDir() returns C:\Users\[username]\Documents
ActiveWorkbook.Path returns D:\db\tmp
因此CurDir()具有系统默认值,可以更改。
对于同一保存的工作簿,ActiveWorkbook.Path不会更改。
例如,当您执行“文件/另存为”命令时,CurDir()会更改,并在“文件/目录选择”对话框中选择一个随机目录。然后单击“取消”以跳过保存。但是CurDir()已经改为最后选择的目录。
答案 1 :(得分:0)
更令人尴尬的是 - 我一直在使用正确的代码:
Sub NewLoopEMF()
Dim sPic As String
Dim sPath As String
sPath = ActiveDocument.path & "\"
sPic = Dir(sPath & "*.emf")
Do While sPic <> ""
Selection.TypeParagraph
Selection.InlineShapes.AddPicture _
FileName:=sPath & sPic, _
LinkToFile:=False, SaveWithDocument:=True
sPic = Dir
Selection.TypeParagraph
Loop
End Sub
不幸的是,活动目录位于同步的SharePoint文件夹中,因此返回的名称是超文本(http://all其余的/),有了这个,你知道什么是松散的。我通过使用这段代码来解决这个问题:
Sub GetActiveDocumentPath()
MsgBox ActiveDocument.path
End Sub
因此,似乎简单的解决方案是不使用sharepoint文件夹来存储项目。对于我们这些在SharePoint环境中工作的人来说,任何人都有一个聪明的解决方案吗?