我是Excel宏中的新成员,并且没有使用VB或任何语言的经验。使用宏和其他表格的值将Excel工作表导出为PDF
我有一个价目表片,在此我们有一个字段与我们的销售人员的联系方式(邮件和手机)的下拉列表。
第二片包含具有名称和的ContactInfo的表。
今天,我使用下拉菜单选择的业务员,并出口到PDF到指定的目录。
我期待用宏做这些事情导出为PDF格式。我试过一些宏而没有成功。我想使用名称@Name保存在目录中,并使用@ContactInfo替换价目表的特定字段。
我有:
Sub MAKEPDF()
Dim dvCell As Range
Dim inputRange As Range
Dim c As Range
Dim i As Long
'Which cell has data validation
Set dvCell = Sheets("NUEVA LISTA").Range("A3")
'Determine where validation comes from
Set inputRange = Evaluate(dvCell.Validation.Formula1)
arrVendedores = Array("Name1", "Name2", "Name3", "Name4", "Name5", "Name6", "Name7")
i = 1
'Begin our loop
Application.ScreenUpdating = False
For Each c In inputRange
dvCell = c.Value
ChDir "D:\Google Drive\Lista de Precios\temp\" & arrVendedores(i)
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="(" & Format(Range("A4"), "yyyy-mm-dd") & ") Lista de precios.pdf"
'Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
i = i + 1
Next c
Application.ScreenUpdating = True
End Sub
这保存为PDF完美,但如预期导致错误9(索引),阵列不工作,为更好地从表1 @名称使用当前数据。
任何人都可以帮助我达成目标吗?
感谢和抱歉我的英语不好。
应该不是你的阵列中使用I = 0来迭代?如arrVenderoes默认情况下(0到6)不是(1到7)。你可以在编辑器的本地窗口中检查它。 –
这可能是一个想法来代替I = 1,并像对于i = LBOUND(arrVendedores)为UBound函数(arrVendedores)在我的迭代,如果你改变你是安全的阵列的方式。然后你可以使用你提到的表格更早地设置数组。 –
我试图用我+ 1里面arrVendedores但失败,并且....我应该使用其他变量一样II =然后我用II + 1里面arrVendedores – Chiar15