生成自动ID

时间:2013-12-17 15:27:24

标签: email outlook outlook-vba

我必须做以下事情:

打开邮件 - >检查主题 - >如果主题不是:..... cID#[4digit] - >根据文件夹和子文件夹中的其他邮件主题,为其添加一个cID#[4digit] - >其他行动。

基本检查cID#的最高值,将其递增1,然后将其添加到新主题中。例如,如果您的主题是:H& H 2013分配。

- 检查主题是否包含cID#部分。

- 找不到它,所以检查文件夹和子文件夹中的最高cID#;将其增加1.

将单个邮件的ID作为整数获取,因为它只是Val(Right(subjecttring.4))(它总是在右边,这对我来说更容易,因为我找不到其他方法,但它们非常受欢迎)从这些值,很容易构建4长度长的字符串,并将其插入主题。

我的问题是,如何获得最高价值的cID#-s。

2 个答案:

答案 0 :(得分:2)

根据Max的建议,我的代码是基于此,如果其他人有同样的问题。 我使用szamid来设置数字。

Sub readtextfile()

Dim oFSO As New FileSystemObject
Dim oFS As TextStream
Dim oFSBU As TextStream
Dim filePath As String
Dim filePathBU As String
Dim szamid As Integer
Dim My_filenumber As Integer

filePath = "C:\Casenumber.txt"
filePathBU = "C:\CasenumberBU.txt"
If Not fileExist(filePath) Then GoTo FileDoesntExist

On Error GoTo Err


Set oFS = oFSO.OpenTextFile(filePath, ForReading)
szamid = oFS.Read(7)
szamid = szamid + 1
szamid = CStr(szamid)
oFS.Close

Set oFS = oFSO.OpenTextFile(filePath, ForWriting)
oFS.WriteLine (szamid)
oFS.Close
Set oFSBU = oFSO.OpenTextFile(filePathBU, ForWriting)
oFSBU.WriteLine (szamid)
oFSBU.Close

MsgBox szamid

Exit Sub

FileDoesntExist:

Set oFSBU = oFSO.OpenTextFile(filePathBU, ForReading)
szamid = oFSBU.Read(7)
szamid = szamid + 1
szamid = CStr(szamid)
oFSBU.Close

Const FILENAME = "C:\Casenumber.txt"
My_filenumber = FreeFile
Open FILENAME For Output As #My_filenumber
Close #My_filenumber

Set oFS = oFSO.OpenTextFile(filePath, ForWriting)
oFS.WriteLine (szamid)
oFS.Close
Set oFSBU = oFSO.OpenTextFile(filePathBU, ForWriting)
oFSBU.WriteLine (szamid)
oFSBU.Close
MsgBox szamid

Exit Sub

Err:
MsgBox "Error while reading the file.", vbCritical, vbNullString
oFS.Close
Exit Sub

End Sub

答案 1 :(得分:0)

阅读所有现有的电子邮件将使用一些时间和资源。

我会在硬盘上保留一个文本文件,其中只存储最高值;在阅读它并为下一封邮件添加+1时,也将新号码放入文本文件中。

操作方法:在此处查看我的答案:read value from text file, Forward email

最高