打印报告 - VBA代码问题

时间:2014-10-21 08:53:23

标签: excel vba excel-vba

我遇到了一段代码问题。我们使用以下内容在日志中搜索特定信息,填充图表,然后在完成后打印并清除图表。

问题是,如果我们将搜索条件从CIS更改为Inbound(或其他任何内容),它会拒绝使用日志中的信息填充图表,但仍打印出图表标题。

这是我们正在使用的代码:

Private Sub cmdprint_Click()

Dim sdsheet As Worksheet, ersheet As Worksheet
Set sdsheet = Workbooks("HD Project.xls").Sheets("HelpdeskLogg")
Set ersheet = Workbooks("HD Project.xls").Sheets("report")
dlr = sdsheet.Cells(Rows.Count, 1).End(xlUp).Row
rlr = ersheet.Cells(Rows.Count, 1).End(xlUp).Row

y = 2
For x = 2 To dlr

If UCase(sdsheet.Cells(x, 6)) = "Inbound" And CDate(sdsheet.Cells(x, 3)) >= CDate(Me.txtdatestart) And CDate(sdsheet.Cells(x, 3)) <= CDate(Me.txtdateend) Then





ersheet.Cells(y, 1) = CDate(sdsheet.Cells(x, 3))
ersheet.Cells(y, 2) = sdsheet.Cells(x, 6)
ersheet.Cells(y, 3) = sdsheet.Cells(x, 7)
ersheet.Cells(y, 4) = sdsheet.Cells(x, 8)
ersheet.Cells(y, 5) = sdsheet.Cells(x, 9)
ersheet.Cells(y, 6) = sdsheet.Cells(x, 10)
ersheet.Cells(y, 7) = sdsheet.Cells(x, 11)
ersheet.Cells(y, 8) = sdsheet.Cells(x, 12)
ersheet.Cells(y, 9) = sdsheet.Cells(x, 13)

y = y + 1
'On Error Resume Next

End If


Next x

Dim Lastrow As Integer
Lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row


Set printa = ersheet.Range("A1:i" & Lastrow)


printa.PrintOut


Sheets("report").Range("a2:i999").ClearContents






End Sub

2 个答案:

答案 0 :(得分:1)

尝试更改:

UCase(sdsheet.Cells(x, 6)) = "Inbound"

UCase(sdsheet.Cells(x, 6)) = "INBOUND"

答案 1 :(得分:0)

  

尝试更改:

     

UCase(sdsheet.Cells(x,6))=“入境”到

     

UCase(sdsheet.Cells(x,6))=“INBOUND”

这很有用。谢谢你的帮助,barrleajo