除非删除某些部分,否则Excel VBA代码不能完全正常工作

时间:2015-12-29 10:49:22

标签: excel vba excel-vba

我的问题是当我编写所​​有代码时,其中一个代码无效。它不会出错,但GenerateEmail子系统不会生成任何电子邮件。但是,如果我删除其中一个While Wend代码,其他代码工作(我逐个测试它们)。简而言之,如果所有的Wend代码都在那里,其中一个将无法工作。我不确定发生了什么。任何帮助表示赞赏。我试过找到类似的情况但没有成功。

我的代码:

Sub CaseCreation()
Dim subjectTitleEABS As String
Dim subjectTitleCCC As String
Dim subjectTitleRR As String
Dim subjectTitleTERM As String
Dim rowCount As String
rowCount = 2

While Sheets("Extended Abs").Range("B" & CStr(rowCount)).Value <> ""
If Sheets("Extended Abs").Range("A" & CStr(rowCount)).Value = "" Then
subjectTitleEABS = Sheets("Extended Abs").Range("K" & CStr(rowCount)).Value
Call GenerateEmail(subjectTitleEABS)
End If
rowCount = rowCount + 1
Wend

While Sheets("Contractual Conditions Change").Range("B" & CStr(rowCount)).Value <> ""
If Sheets("Contractual Conditions Change").Range("A" & CStr(rowCount)).Value = "" Then
subjectTitleCCC = Sheets("Contractual Conditions Change").Range("L" & CStr(rowCount)).Value
Call GenerateEmail(subjectTitleCCC)
End If
rowCount = rowCount + 1
Wend

While Sheets("Resource Requests").Range("B" & CStr(rowCount)).Value <> ""
If Sheets("Resource Requests").Range("A" & CStr(rowCount)).Value = "" Then
subjectTitleRR = Sheets("Resource Requests").Range("M" & CStr(rowCount)).Value
Call GenerateEmail(subjectTitleRR)
End If
rowCount = rowCount + 1
Wend

While Sheets("Terminations").Range("B" & CStr(rowCount)).Value <> ""
If Sheets("Terminations").Range("A" & CStr(rowCount)).Value = "" Then
subjectTitleTERM = Sheets("Terminations").Range("K" & CStr(rowCount)).Value
Call GenerateEmail(subjectTitleTERM)
End If
rowCount = rowCount + 1
Wend

1 个答案:

答案 0 :(得分:1)

只会执行第一个While / wend。例如,如果您有5行,则第二行将从rowCount 6开始。您需要在每个While / Wend之间重置计数器。