Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 生成自动ID_Vba_Email_Outlook - Fatal编程技术网

Vba 生成自动ID

Vba 生成自动ID,vba,email,outlook,Vba,Email,Outlook,我必须做到以下几点: 打开邮件->检查主题->如果主题不象:。。。。。cID#[4digit]->根据文件夹和子文件夹->其他操作中的其他邮件主题,向其添加cID#[4digit] 基本上检查cID#的最大值,将其增加1,然后将其添加到新主题中。例如,如果您的主题是:H&H 2013分配 -它检查主题是否包含cID#部分。✓ -它找不到它,所以它会检查文件夹和子文件夹中的最高cID#;增加1✗ 将单个邮件的ID获取为整数就完成了,因为它只是Val(Right(subjectstring.4))(

我必须做到以下几点:

打开邮件->检查主题->如果主题不象:。。。。。cID#[4digit]->根据文件夹和子文件夹->其他操作中的其他邮件主题,向其添加cID#[4digit]

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

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

-它找不到它,所以它会检查文件夹和子文件夹中的最高cID#;增加1<强>✗

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


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

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

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

如何:在此处查看我的答案:


Max

根据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

它看起来不错,我明天会试试(从现在起14小时后,如果它有效,我会回复:))好吧,这已经足够好了:)但是我不能让你的方法工作,所以我用另一种方式,如果其他人都有同样的问题,我明天会在我的帖子中编辑它。谢谢