Vba 从MS Word文档复制到网页输入框
在已打开的word文档中,选择所有文本 将所选文本复制到剪贴板 选中在正确的web地址打开的默认浏览器 如果没有,请打开网址处的默认浏览器 关注浏览器 将剪贴板文本粘贴到名为input1的输入框中 或者以其他方式将MSword文档内容输入到网页输入 目前的工作流程包括秘书登录网站,然后填写web表单,切换到打开的MS Word文档,选择全部,复制WP文档,然后返回web表单并粘贴到输入框,然后点击提交。理想情况下,我想在MS word中设置一个按钮,打开浏览器到正确的网页,然后将文档复制并粘贴到页面上正确的输入框中。事实上,它将是唯一的textarea表单字段 MS Word VBA代码为:Vba 从MS Word文档复制到网页输入框,vba,ms-word,Vba,Ms Word,在已打开的word文档中,选择所有文本 将所选文本复制到剪贴板 选中在正确的web地址打开的默认浏览器 如果没有,请打开网址处的默认浏览器 关注浏览器 将剪贴板文本粘贴到名为input1的输入框中 或者以其他方式将MSword文档内容输入到网页输入 目前的工作流程包括秘书登录网站,然后填写web表单,切换到打开的MS Word文档,选择全部,复制WP文档,然后返回web表单并粘贴到输入框,然后点击提交。理想情况下,我想在MS word中设置一个按钮,打开浏览器到正确的网页,然后将文档复制并粘贴到
Option Explicit
Enum W32_Window_State
Show_Normal = 1
Show_Minimized = 2
Show_Maximized = 3
Show_Min_No_Active = 7
Show_Default = 10
End Enum
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hWnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Function OpenURL(URL As String, WindowState As W32_Window_State) As Boolean
' Opens passed URL with default application, or Error Code (<32) upon error
Dim lngHWnd As Long
Dim lngReturn As Long
lngReturn = ShellExecute(lngHWnd, "open", URL, vbNullString, _
vbNullString, WindowState)
OpenURL = (lngReturn > 32)
End Function
Sub TestMacro()
Application.ActiveDocument.Select
Selection.Copy
OpenURL "http://localhost:8500/index.cfm?wordContent=" & Selection, W32_Window_State.Show_Maximized
End Sub
在coldfusion处理表单中
<html>
<head>
</head>
<body>
<form id="form1">
<Textarea ID="txtArea" rows=6><cfoutput>#url.wordContent#</cfoutput></textarea>
</form>
</body>
</html>
我只是想知道如果一个新的浏览器窗口已经打开,如何不打开它。另一个选择是使用控件从Word内部查看对Internet Explorer的控制 这就是一个例子
注意,除非有Firefox等的dll版本,否则这只适用于IE。如果您可以修改web应用程序,您可以执行以下操作: MS Word:将内容复制到剪贴板。 MS Word:打开Url作为http://thisaddress.com/SomePage?pasteClipboard=true SomePage:如果查询字符串param pasteClipboard==true,则添加一个javascript函数以将剪贴板数据获取到表单字段中。 更新: 在宏中,您只需调用Selection.Copy,然后要使用默认浏览器打开URL,请选中此链接 使用上一个链接中的代码,我制作了一个测试宏,如下所示:
Sub TestMacro()
Application.ActiveDocument.Select
Selection.Copy
OpenURL "http://thisaddress.com/SomePage?pasteClipboard=true", W32_Window_State.Show_Maximized
End Sub
我希望这是有帮助的
更新2:
只需使用W32_Window_State.Show_默认值,以下是完整的宏:
Option Explicit
Enum W32_Window_State
Show_Normal = 1
Show_Minimized = 2
Show_Maximized = 3
Show_Min_No_Active = 7
Show_Default = 10
End Enum
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hWnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Function OpenURL(URL As String, WindowState As W32_Window_State) As Boolean
' Opens passed URL with default application, or Error Code (<32) upon error
Dim lngHWnd As Long
Dim lngReturn As Long
lngReturn = ShellExecute(lngHWnd, "open", URL, vbNullString, _
vbNullString, WindowState)
OpenURL = (lngReturn > 32)
End Function
Sub TestMacro()
Application.ActiveDocument.Select
Selection.Copy
OpenURL "http://thisaddress.com/SomePage?pasteClipboard=true", W32_Window_State.Show_Default
End Sub
web表单地址是什么?web应用程序是您的解决方案的一部分吗?你能修改它吗?我用进一步的线索更新了我的答案,检查一下。是的,网络应用在我的控制之下。有关于1和2的更多线索吗?非常接近,谢谢你的帮助。这将每次打开一个新的浏览器窗口。是否有办法修改此选项,以便仅当浏览器尚未打开时才打开新浏览器。我认为W32_Window_State.Show_Default是您所寻找的,无论以何种方式,我都用完整的宏代码更新了答案。我测试了所有W32_Window_State选项,但不幸的是,它们都打开了一个新的浏览器窗口。我不知道如何修改该函数,以检查浏览器窗口是否已打开,如果已打开,请转到url当我使用W32_window_State.Show_默认url在同一IE浏览器窗口中打开,但在不同的选项卡中,转到[工具>Internet选项>选项卡>设置>打开来自其他程序的链接:当前选项卡或窗口]使其在当前选项卡中打开,在[工具>Internet选项>高级>设置>恢复窗口中还有另一个选项,用于在禁用选项卡浏览时启动快捷方式]。底线是,使用shell execute只是一个起点,其余的取决于目标应用程序,在本例中是浏览器。