Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 从MS Word文档复制到网页输入框_Vba_Ms Word - Fatal编程技术网

Vba 从MS Word文档复制到网页输入框

Vba 从MS Word文档复制到网页输入框,vba,ms-word,Vba,Ms Word,在已打开的word文档中,选择所有文本 将所选文本复制到剪贴板 选中在正确的web地址打开的默认浏览器 如果没有,请打开网址处的默认浏览器 关注浏览器 将剪贴板文本粘贴到名为input1的输入框中 或者以其他方式将MSword文档内容输入到网页输入 目前的工作流程包括秘书登录网站,然后填写web表单,切换到打开的MS Word文档,选择全部,复制WP文档,然后返回web表单并粘贴到输入框,然后点击提交。理想情况下,我想在MS word中设置一个按钮,打开浏览器到正确的网页,然后将文档复制并粘贴到

在已打开的word文档中,选择所有文本 将所选文本复制到剪贴板 选中在正确的web地址打开的默认浏览器 如果没有,请打开网址处的默认浏览器 关注浏览器 将剪贴板文本粘贴到名为input1的输入框中

或者以其他方式将MSword文档内容输入到网页输入

目前的工作流程包括秘书登录网站,然后填写web表单,切换到打开的MS Word文档,选择全部,复制WP文档,然后返回web表单并粘贴到输入框,然后点击提交。理想情况下,我想在MS word中设置一个按钮,打开浏览器到正确的网页,然后将文档复制并粘贴到页面上正确的输入框中。事实上,它将是唯一的textarea表单字段

MS Word VBA代码为:

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只是一个起点,其余的取决于目标应用程序,在本例中是浏览器。