(vba)excel表批量生成 PDF文件时如何自动将表中的某一列数据作为文件名
PrivateSubCommandButton1_Click()Dimstr1,str2,str3AsString'ForI=Sheet1.Cells(1,12).Val...
Private Sub CommandButton1_Click()
Dim str1, str2, str3 As String
'For I = Sheet1.Cells(1, 12).Value + Sheet2.Cells(4, 6).Value - 1 To Sheet1.Cells(1, 12).Value + Sheet2.Cells(4, 6).Value - 1 + (Sheet2.Cells(5, 6).Value - Sheet2.Cells(4, 6).Value)
For I = 5 To 10
If Sheet1.Cells(I, 3).Value = "" Then Exit Sub
Sheet2.Cells(4, 3).Value = Sheet1.Cells(I, 3).Value
Sheet2.Cells(5, 3).Value = Sheet1.Cells(I, 4).Value
Sheet2.Cells(6, 3).Value = Sheet1.Cells(I, 5).Value
Sheet2.Cells(7, 3).Value = Sheet1.Cells(I, 6).Value
str2 = Sheet2.Cells(4, 3).Value
str1 = "d:\检验记录\"
str3 = str1 & str2 & ".pdf"
' Debug.Print str1
Sheet2.PrintOut 1, 1, 1, False, "Adobe PDF", True, False, str3, False
'Worksheets("Sheet2").Range("C4").Value
Next提交问题
End Sub
我这样写自动生成的pdf格式不对
我现在这样写是可以了
前面一样
str3 = str1 & str2 & ".pdf"
'
Range("B3:C8").Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
str3, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Next
End Sub
可还有个问题区域的设置,上面是转表2的,我要转表1怎么改。。。我在Range这条语句前加呢
Sheets("Sheet1").Select
好像不行啊 展开
Dim str1, str2, str3 As String
'For I = Sheet1.Cells(1, 12).Value + Sheet2.Cells(4, 6).Value - 1 To Sheet1.Cells(1, 12).Value + Sheet2.Cells(4, 6).Value - 1 + (Sheet2.Cells(5, 6).Value - Sheet2.Cells(4, 6).Value)
For I = 5 To 10
If Sheet1.Cells(I, 3).Value = "" Then Exit Sub
Sheet2.Cells(4, 3).Value = Sheet1.Cells(I, 3).Value
Sheet2.Cells(5, 3).Value = Sheet1.Cells(I, 4).Value
Sheet2.Cells(6, 3).Value = Sheet1.Cells(I, 5).Value
Sheet2.Cells(7, 3).Value = Sheet1.Cells(I, 6).Value
str2 = Sheet2.Cells(4, 3).Value
str1 = "d:\检验记录\"
str3 = str1 & str2 & ".pdf"
' Debug.Print str1
Sheet2.PrintOut 1, 1, 1, False, "Adobe PDF", True, False, str3, False
'Worksheets("Sheet2").Range("C4").Value
Next提交问题
End Sub
我这样写自动生成的pdf格式不对
我现在这样写是可以了
前面一样
str3 = str1 & str2 & ".pdf"
'
Range("B3:C8").Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
str3, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Next
End Sub
可还有个问题区域的设置,上面是转表2的,我要转表1怎么改。。。我在Range这条语句前加呢
Sheets("Sheet1").Select
好像不行啊 展开
3个回答
展开全部
1. "Sheet2.PrintOut 1, 1, 1, False, "Adobe PDF", True, False, str3,False"
printout 方法只需要8个参数
◆打印当前工作表:oExcel.ActiveSheet.PrintOut() &&共八个参数
*参数1-数值:起始页号,省略则默认为开始位置
*参数2-数值:终止页号,省略则默认为最后一页
*参数3-数值:打印份数,省略则默认为1份
*参数4-逻辑值:是否预览,省略则默认为直接打印(.F.)
*参数5-字符值:设置活动打印机名称,省略则为默认打印机
*参数6-逻辑值:是否输出到文件,省略则默认为否(.F.),若选.T.且参数8为空,则Excel提示输入要输出的文件名
*参数7-逻辑值:输出类型,省略则默认为(.T.)逐份打印,否则逐页打印
*参数8-字符值:当参数6为.T.时,设置要打印到的文件名
2.Next提交问题
应该是 Next i 吧
printout 方法只需要8个参数
◆打印当前工作表:oExcel.ActiveSheet.PrintOut() &&共八个参数
*参数1-数值:起始页号,省略则默认为开始位置
*参数2-数值:终止页号,省略则默认为最后一页
*参数3-数值:打印份数,省略则默认为1份
*参数4-逻辑值:是否预览,省略则默认为直接打印(.F.)
*参数5-字符值:设置活动打印机名称,省略则为默认打印机
*参数6-逻辑值:是否输出到文件,省略则默认为否(.F.),若选.T.且参数8为空,则Excel提示输入要输出的文件名
*参数7-逻辑值:输出类型,省略则默认为(.T.)逐份打印,否则逐页打印
*参数8-字符值:当参数6为.T.时,设置要打印到的文件名
2.Next提交问题
应该是 Next i 吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你使用的Excel是2007版或者以上的可以使用工作表的ExportAsFixedFormat 的方法,将Excel工作表另存为PDF格式的文件。
具体语法:
Sheet2.ExportAsFixedFormat Type:=xlTypePDF, Filename:= str3, Quality:=xlQualityStandard
追问
帮我看看补充的问题
追答
你的代码是在Sheet2里面的。所以Range("A2:K18").Select这句默认的是sheet2的range对象。代码Sheet1.Activate将sheet2设置成了活动工作表。再用Range("A2:K18").Select这句的话就出现错了。不能选择非活动工作表的单元格区域的。
代码修改如下:
ActiveSheet.Range("A2:K18").Select '选择的是Sheet1的A2:K18区域。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ThisWorkbook.SaveAs str3
追问
能详细点不。。不大懂VBA
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |