我正在尝试创建一个VBA宏来将数据从PDF文件复制到Excel文件,但数据总是合并为1列,而不是与pdf文件相同的2列。 很难获得下一步的数据。
所以,我想在Pdf文件中使用tab "Save as other" ->Text
将文件保存为包含2列的txt文件。我使用SendKeys"%fhx"显示另存为对话框,但我无法更改路径和文件名。
请帮我解决这个问题。
代码如下:
Do While filepdf <> ""
task = Shell("C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe " & filename, 1)
Application.Wait Now + TimeValue("00:00:2")
SendKeys "%fhx" AppActivate (task) --- I dont know how to select Save as dialog to change path and file name ---
SendKeys "%s" Application.Wait Now + TimeValue("00:00:2")
SendKeys "%{F4}", True
filepdf = Dir(path & "*.pdf")
Loop
答案 0 :(得分:0)
在回答之前有两个免责声明:
这是代码,评论有希望解释。 你应该找到一种方法将它放在你的循环中。 玩得开心:
Option Explicit
Public Sub TestMe()
Dim task As Variant
task = Shell("C:/Windows/Notepad.exe", 1)
AppActivate task
'save as
SendKeys "%fa", True
'name in the save as
SendKeys "vityata.txt", True
'press enter
SendKeys "{ENTER}", True
'exit notepad
SendKeys "%fx", True
End Sub
编辑: 如果要更改destionation路径,请按以下方式更改:
'name in the save as
SendKeys "C:\Users\lili\ivanova\ale\new\vityata.txt", True
答案 1 :(得分:0)
我尝试了以下代码,发现没关系:
Sub SaveAsPdf()
Dim task
task = Shell("C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe " & namepdf, 1)
SendKeys "%fhx"
AppActivate (task)
SendKeys nametxt, True
SendKeys "{TAB}"
SendKeys "{TAB}"
SendKeys "{TAB}"
SendKeys "{TAB}"
SendKeys "{TAB}"
SendKeys "{TAB}"
SendKeys "{ENTER}"
SendKeys path, True
SendKeys "{ENTER}"
SendKeys "%s"
End sub