ma2*_*268 0 excel vba excel-vba
任何人都可以帮助我们.我们设法让VBA查看我们的数据并查找已打开超过90天的门票.但目前我们只能这样做,以便每张票都显示为一个sepparate消息框.是否可以将最后的所有结果合并到一个消息框中,该消息框包含结果列表并计算找到的结果总数?我们使用的代码如下.
Sub LongerThan3Months()
Dim lastrow As Long
Dim i As Long
Dim startdate As Date
Dim datenow As Date
Dim Ticket As String
Dim days As Integer
Dim n As Integer
Sheets("Tickets").Select
With ActiveSheet
lastrow = .Cells(.Rows.Count, "B").End(xlUp).Row
End With
datenow = Date
n = 0
For i = 4 To lastrow
startdate = Range("B" & i).Value
days = DateDiff("d", startdate, Now)
If days >= 90 Then
If Range("B" & i).offset(, 2).Value <> "Closed" Then
n = n + 1
Ticket = Range("B" & i).offset(, 3).Value
End If
End If
Next i
MsgBox (n & " " & "Tickets have been open for over 90 days")
End Sub
Run Code Online (Sandbox Code Playgroud)
您将要将resutlts连接成一个字符串.
在循环之外,你应该得到一个字符串变量.
Dim msgStr as String
Dim extraTickets as Long
extraTickets = 0
Run Code Online (Sandbox Code Playgroud)
然后Ticket每次将字段的串联添加到字符串.
If Range("B" & i).offset(, 2).Value <> "Closed" Then
n = n + 1
Ticket = Range("B" & i).offset(, 3).Value
If n < 30 Then
'this will not happen on the 31st ticket.
msgStr = msgStr & Ticket & vbcrlf
End if
End If
Run Code Online (Sandbox Code Playgroud)
对于输入键,它vbcrlf是一个VB常量Carriage Return, Line Feed.它将在显示屏中为每张票提供自己的一行.
MsgBox (n & " " & "Tickets have been open for over 90 days" & vbcrlf & vbcrlf & msgStr)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1031 次 |
| 最近记录: |