我编写的应用程序会复制此web page,
中的所有文字我检查剪贴板的内容两次。首先在外部程序中复制网页,然后在Word中从剪贴板粘贴文本时发生错误。
对于任何情况,我都添加了等待的计时器,但这不是必要的,因为文本在剪贴板中 - 我确定。
Dim BufObj As MSForms.DataObject, BufTxt As String
Set BufObj = New MSForms.DataObject
BufObj.GetFromClipboard
BufTxt = BufObj.GetText ' I added BufTxt to watch panel
Dim tmpStart
tmpStart = Timer
Do
DoEvents
Loop While (tmpStart + 1) > Timer
Documents.Add.Content.Paste
在某些页面上,它可以工作并粘贴文本。但就这一点而言,它没有。调试器在Documents.Add.Content.Paste
您是否知道如何解决问题?我见过这个link。哪里有一个回答建议删除链接,但我找不到任何代码如何做到这一点。
修改
代码已更新,但错误仍然存在。我发现当调试器中断后,我停止宏,然后我无法粘贴剪贴板中的数据(ctrl + v)。但是当我在调试器中检查时,BufTxt
包含了文本。
答案 0 :(得分:0)
试试这个测试代码。它会从剪贴板中插入文本100次。
没有使用粘贴功能,所以重新分页不应该影响它(我猜)
Sub appendFromClip()
Dim BufObj As MSForms.DataObject
Set BufObj = New MSForms.DataObject ' clipboard object
Dim doc As Document
Set doc = Documents.Add(DocumentType:=wdNewBlankDocument)
Dim rng As Range
Set rng = doc.Range ' whole document
Dim i As Integer
For i = 1 To 100 ' test: repeat a bunch of text appends
rng.Collapse wdCollapseEnd ' collapse range into an insert point at end of document
BufObj.GetFromClipboard
rng = BufObj.GetText ' note: rng becomes the range of the added text, so you have to collapse rng before adding more text
Next i
End Sub
答案 1 :(得分:0)
我发现简单删除第一个命令
var input = document.getElementById('input');
input.onkeydown = function(e) {
console.log(input.value.length);
if (input.value.length == 10) {
if (e.keyCode === 8 || e.keyCode === 46) {
return true;
} else {
return false;
}
}
}
修复了问题。粘贴剪贴板后,我打开了两个窗口。删除程序后运行速度更快,错误没有发生。