Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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代码问题_Vba_Excel - Fatal编程技术网

打印报告-VBA代码问题

打印报告-VBA代码问题,vba,excel,Vba,Excel,我的代码有问题。我们使用以下命令来搜索日志中的特定信息,填充图表,然后在完成后打印并清除图表 问题是,如果我们将搜索条件从CIS更改为Inbound(或其他相关内容),它将拒绝使用日志中的信息填充图表,但仍会打印出图表标题 这是我们正在使用的代码: Private Sub cmdprint_Click() Dim sdsheet As Worksheet, ersheet As Worksheet Set sdsheet = Workbooks("HD Project.xls").Sheets

我的代码有问题。我们使用以下命令来搜索日志中的特定信息,填充图表,然后在完成后打印并清除图表

问题是,如果我们将搜索条件从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
Private Sub cmdprint\u Click()
将sdsheet作为工作表,或将Sheet作为工作表
Set sdsheet=工作簿(“HD Project.xls”).Sheets(“HelpdeskLogg”)
Set-ersheet=工作簿(“HD-Project.xls”).工作表(“报告”)
dlr=sdsheet.Cells(Rows.Count,1).End(xlUp).Row
rlr=ersheet.Cells(Rows.Count,1).End(xlUp).Row
y=2
对于x=2至dlr
如果UCase(sdsheet.Cells(x,6))=“Inbound”和CDate(sdsheet.Cells(x,3))>=CDate(Me.txtdatestart)和CDate(sdsheet.Cells(x,3))尝试更改:

UCase(sdsheet.Cells(x,6))=“入站”
to

UCase(sdsheet.Cells(x, 6)) = "INBOUND"
尝试更改:

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

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


这起作用了。谢谢你的帮助,barrleajo

我觉得这个代码不完整。。。你们说的是图表,但这段代码并没有这么做……对不起,我指的是表格,不是图表。我的老板称之为图表。对不起,我不是想在低质量的审查队列中标记此项以便删除,我似乎是此错误的受害者:。这看起来确实是一个有效的答案。