我在一个单元格中有一个字符串,让我们说"Client Ref:F123456PassPlus".字符串可能在数字前没有字母,数字中可能有符号,字母和数字之间可能有空格.我只需要将数字作为变量提取.我有代码来做,但它不知道何时停止循环字符串.它应该在有数字或符号以外的东西时停止,而是继续进行.
IsNumber = 1
ref = ""
If branch = "" Then
e = b
Else
e = b + 1
End If
f = 1
While IsNumber = 1
For intpos = 1 To 15
ref = Mid(x, e, f)
f = f + 1
Select Case Asc(ref)
Case 45 To 57
IsNumber = 1
Case Else
IsNumber = 0
Exit For
End Select
Next
IsNumber = 0
Wend
Run Code Online (Sandbox Code Playgroud)
之前已经定义了任何没有定义的变量字母,e告诉代码从哪里开始复制,x是包含字符串的单元格.现在,一切正常,它从数字开始并复制它们并将它们构建成一个越来越大的字符串,但它只会在intpos达到15时停止.
我使用以下代码提取主题、接收日期和发件人姓名:
Set InboxSelect = GetObject("", "Outlook.Application").GetNamespace("MAPI").PickFolder
i = 0: EmailCount = 0
EmailCount = InboxSelect.Items.Count
While i < EmailCount
i = i + 1
blastRow = Cells(Rows.Count, 1).End(xlUp).Offset(1).Row
LastRow = Sheets("Body").Cells(Rows.Count, 1).End(xlUp).Offset(1).Row
With InboxSelect.Items(i)
MsgBox (SenderEmailAddress)
'If .senderemailaddress = "*@somethingSpecific.co.uk" Then
'EmailCount = EmailCount + 1
Sheets("Import Data").Range("A" & blastRow).Formula = .SenderName
Sheets("Import Data").Range("B" & blastRow).Formula = Format(.ReceivedTime, "dd/mm/yyyy")
Sheets("Import Data").Range("C" & blastRow).Formula = .Subject
Sheets("Body").Range("A" & LastRow).Formula = .Body
'End If
End With
Wend
Run Code Online (Sandbox Code Playgroud)
我现在想要实现的是一个 if 语句,它会说“如果发件人的电子邮件地址是 'anything@somethingSpecific.co.uk',则执行该代码。我已经尝试过 SenderEmailAddress,但在消息中测试时它返回空白盒子。 …