Simplificar macro que pasa datos de excel a formulario pdf
Me han sido de mucha ayuda y he aprendido mucho también; a propósito de esto, te consulto porque he utilizado una macro que compartiste hace tiempo que permite pasar datos de una hoja de excel a un formulario pdf; ¡Y funciona muy bien!... Mi problema es que los registros van en aumento y por tanto lo he adaptado de la siguiente forma...
Sub PasarDatosaPdf()
'Por.Dante Amor
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set h2 = Sheets("Datos") 'contador
f = 1
'
file = "Acta_" & f
Range("A2").Select
'
celdas = Array("A2", "B2", "C2", "D2", "E2", "F2", "G2", "H2", "I2", "J2", "K2", "L2", "M2", "N2", "O2", "P2", "Q2")
'
ruta = "D:\Actas\"
nomb = "Acta_0"
ActiveWorkbook.FollowHyperlink ruta & nomb & ".pdf"
'
Application. Wait Now + TimeValue("00:00:02")
For i = LBound(celdas) To UBound(celdas)
Application. Wait Now + TimeValue("00:00:02")
DoEvents
SendKeys "{TAB}", True
DoEvents
H2. Range(celdas(i)). Copy
DoEvents
SendKeys "^v", True
DoEvents
Next
DoEvents
SendKeys "%ao", True
DoEvents
SendKeys (file)
DoEvents
SendKeys "{ENTER}", True
DoEvents
'
Application.ScreenUpdating = True
'
'
f = f + 1
file = "Acta_" & f
Range("A3").Select
'
celdas = Array("A3", "B3", "C3", "D3", "E3", "F3", "G3", "H3", "I3", "J3", "K3", "L3", "M3", "N3", "O3", "P3", "Q3")
'
Application.Wait Now + TimeValue("00:00:02")
ActiveWorkbook.FollowHyperlink ruta & nomb & ".pdf"
'
For i = LBound(celdas) To UBound(celdas)
Application. Wait Now + TimeValue("00:00:02")
DoEvents
SendKeys "{TAB}", True
DoEvents
H2. Range(celdas(i)). Copy
DoEvents
SendKeys "^v", True
DoEvents
Next
DoEvents
SendKeys "%ao", True
DoEvents
SendKeys (file)
DoEvents
SendKeys "{ENTER}", True
DoEvents
'
Application.ScreenUpdating = True
'
End Sub
Como verás, lo único que cambia en el Array es la fila, y no he encontrado la forma de poder utilizar una variable para que en un bucle pueda ir cambiando este valor hasta completar todas las filas de datos.
¿Hay manera de poder hacer esto sin tener que copiar y pegar todo el bloque de código?, pues si son 50 filas de datos sería un pergamino inmenso.
Muchas gracias de antemano.
PD - ¿La función TimeValue admite centésimas de segundo, por ejemplo que se pueda establecer el tiempo en 00:00:01.25?