我有一个宏,我通过自定义UI编辑器添加的选项卡/组/按钮调用 -
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="tabCustomActions" label="Custom ActionsXXX" insertAfterMso="TabDeveloper">
<group id="GroupTLA" label="TLA Actions">
<button id="buttonFormatTLA" label="Format as TLA" image="TLALogo" size="large" onAction="start_tla" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Run Code Online (Sandbox Code Playgroud)
按钮显示很好,带有我的自定义徽标,但是当我点击按钮时,我得到以下错误 -

通常情况下,此错误后未打开VBA,如果我打开开发人员控制台然后尝试单击按钮,则VBA中的代码不会被指示为问题.
奇怪的是,如果我尝试手动运行宏,它可以正常工作,没有错误.有没有人有任何想法如何解决这个问题?
如果您希望查看它,这是我在Pastebin中的完整代码.谢谢.
我有很多带有大量书签的word文档.我使用VBA代码用来自数据库的数据来更改这些书签.
问题是,有时用户需要编辑这些文档,并且他们倾向于意外删除/更改我的书签,这导致VBA代码不再识别书签.
所以基本上,我想知道的是我如何限制用户在word文档中编辑我的书签.
我不需要超级安全的解决方案,只需要足够的保护,以便用户知道"我不应该触摸这部分".
在此先感谢您的回答..
编辑:
我正在不同的论坛上阅读,并遇到了这个,
哪种做我想要的.但无法实现/将其转换为VBA代码.有人也可以看到我可以使用它吗?
再次感谢.
编辑:office 2007/2010.
我有大量的Word文档,有些"损坏"的表.我已经能够自动完成大部分修复过程,但有一个问题仍然存在.
许多表都是浮动对象 - 当我显示隐藏的格式标记时,我会在表格中看到一个锚点.我不能保留这样的文件,我需要把所有内容都内联.
我确实有一段代码"修复"了这一点,但我认为这不是一个好的解决方案.通过将文本换行从"无"(默认 - 我想要的)更改为"周围"并返回"无",这将得到修复.代码是,
Selection.Tables(1).Rows.WrapAroundText = True
Selection.Tables(1).Rows.WrapAroundText = False
Run Code Online (Sandbox Code Playgroud)
我确信有更好的方法可以做到这一点.有谁知道一些有用的东西?谢谢!
是否有我可以编写的宏,VBA代码或VBScript来编辑我的Word文档中所有超链接的URL?Word 97-2003或docx格式.
我正在尝试通过VBA发送HTTP帖子.这是我的代码部分
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.Open "POST", url, False
objHTTP.setRequestHeader "User-Agent", "EPS 1.0"
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.setRequestHeader "content", postString
objHTTP.setRequestHeader "Content-Length", Len(postString)
objHTTP.send
Run Code Online (Sandbox Code Playgroud)
问题是,代码仅在postString小于65535字符时才起作用.如果超过65535字符,则会在下面的行中抛出错误:
错误:参数不正确
objHTTP.setRequestHeader "content", postString
Run Code Online (Sandbox Code Playgroud)
有关于此的任何想法?我是否需要设置任何其他参数才能使其解决?
我正在尝试在文档末尾设置一个新表格并将其格式化为我的规范.但backgroundcolor和textcolor似乎不起作用.字体大小也不是我想要的,因为它适用于整个表而不仅仅是一个单元格.
这是我到目前为止:
Dim myRange As Object
Set myRange = ActiveDocument.Content
myRange.Collapse Direction:=wdCollapseEnd
ActiveDocument.Tables.Add Range:=myRange, NumRows:=3, NumColumns:=2
With .Tables(.Tables.Count)
.Cell(1, 1).Select
With Selection
.Shading.Texture = wdTextureNone
.Shading.ForegroundPatternColor = wdColorWhite
.Shading.BackgroundPatternColor = wdColorGray25
.Font.Size = 14
.Font.Bold = True
.Text = "Hello World"
End With
End With
Run Code Online (Sandbox Code Playgroud)
我希望表格的第一行没有边框,灰色背景上的字体为14,粗体,白色文字.
任何人都可以对此有所了解.在MS Word VBA中,我有一个简单的Sub,它产生了意想不到的结果.[编辑:此问题已在MS Word的几个不同安装上重现,但到目前为止只有Win10]
Repro环境:
但没有责备:
重现步骤:打开新的Word文档打开IDE(Alt + F11)输入此代码
Option Explicit
Sub test()
Dim i As Integer
For i = 1 To 100
Debug.Print vbCr
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
运行测试Sub.
每次循环运行时我的输出都会有所不同:
]Œ[p^"î;{Ñ[
]Œ[p^"î;{Ñ[
\ÒZžUÖè;qÑZ
Run Code Online (Sandbox Code Playgroud)
要么
ÿÿ
þþ@øø”¶(3
ÿÿ …Run Code Online (Sandbox Code Playgroud) 我试图用存储在变量中的一些RTF字符串替换Word(2003/2007)中的当前选择.
这是当前的代码:
Clipboard.SetText(strRTFString, TextDataFormat.Rtf)
oWord.ActiveDocument.ActiveWindow.Selection.PasteAndFormat(0)
Run Code Online (Sandbox Code Playgroud)
有没有办法在不通过剪贴板的情况下做同样的事情.或者有没有办法将剪贴板数据推送到安全的地方并在之后恢复?
我正在使用自动化对Word文档进行大量更改,然后运行VBA宏,其中包括检查文档不超过一定数量的页面.
我正在使用ActiveDocument.Information(wdNumberOfPagesInDocument)获取页数,但此方法返回的结果不正确.我认为这是因为Word尚未更新文档的分页以反映我所做的更改.
ActiveDocument.ComputeStatistics(wdStatisticPages) 也遇到同样的问题.
我试着坚持打电话ActiveDocument.Repaginate,但这没什么区别.
我确实有一些运气,在文档的末尾添加一个段落,然后再次删除它 - 但该黑客似乎不再有效(我最近从Word 2003迁移到Word 2010).
有什么方法可以强制Word 实际重新组合,和/或等到重新分页完成后?
我想在Microsoft Word中创建一个非常动态的表单,并允许用户添加多个区域.相关数据包含按日期排序的事件.如果插入新事件,则必须显示在区域列表的顶部.
据我所知,您只能在最后一个区域下插入新区域.是否有可能更改此问题,或者我是否必须使用Word-Macros实现一个片段才能启用它?
编辑(履历 - 示例):
所以这是按升序排序的.错误!如果我按下+ -Button,则在下面插入一个新区域.我希望实现这样的目标:
自动在上方插入新区域.