我希望你能帮助我减少代码的运行时间:
<input
type="text"
name="dateofbirth"
id="dateofbirth"
placeholder="dd/mm/yyyy"
onkeyup="
var v = this.value;
if (v.match(/^\d{2}$/) !== null) {
this.value = v + '/';
} else if (v.match(/^\d{2}\/\d{2}$/) !== null) {
this.value = v + '/';
}"
maxlength="10"
>
Dim position As Long
Dim CellRow As Long
CellRow = 2
For position = InStr(Inbox.Items(MostRecentVersionIndex).body, "Name") To Len(Inbox.Items(MostRecentVersionIndex).body)
ThisWorkbook.Sheets(1).Range("A" & CellRow) = Mid(Inbox.Items(MostRecentVersionIndex).body, InStr(position, Inbox.Items(MostRecentVersionIndex).body, "SCA"), InStr(InStr(position, Inbox.Items(MostRecentVersionIndex).body, "SCA") + 1, Inbox.Items(MostRecentVersionIndex).body, "SCA") - InStr(position, Inbox.Items(MostRecentVersionIndex).body, "SCA"))
CellRow = CellRow + 1
position = InStr(InStr(position, Inbox.Items(MostRecentVersionIndex).body, "SCA") + 1, Inbox.Items(MostRecentVersionIndex).body, "SCA") - 1
Next position
中。 (未在上面显示)问题:运行整个事情需要(不出所料)大约10分钟。
有关如何减少这个的想法吗?
编辑:这是完整的代码(在解决方案更新后):
MostRecentVersionIndex
答案 0 :(得分:1)
这是多点点符号。首先读取项目,然后读取它的主体,然后循环遍历字符。
您需要意识到每次call Inbox.Items(MostRecentVersionIndex).body
时,Outlook都会返回Items集合,滚动到索引MostRecentVersionIndex,打开消息,然后读取其(巨大的)Body属性。你没有充分理由这样做5到6次。
set Item = Inbox.Items(MostRecentVersionIndex)
body = item.Body
For position = InStr(body, "Name") To Len(body)
ThisWorkbook.Sheets(1).Range("A" & CellRow) = Mid(body, InStr(position, body, "SCA"), InStr(InStr(position, body, "SCA") + 1, body, "SCA") - InStr(position, body, "SCA"))
CellRow = CellRow + 1
position = InStr(InStr(position, body, "SCA") + 1, body, "SCA") - 1
Next position