variable valor una ultima seleccionar para otra macro insertar hoja hasta hacia fórmula especificas desde datos código copiar con columna celdas celda buscar asignar abajo excel vba excel-vba excel-2010

excel - valor - Copiar y pegar datos usando el código VBA



macro para copiar formulas hacia abajo (2)

Use el método PasteSpecial:

sht.Columns("A:G").Copy Range("A1").PasteSpecial Paste:=xlPasteValues

PERO su gran problema es que está cambiando su ActiveSheet a "Datos" y no lo está cambiando. No necesita hacer el Activar y Seleccionar, según mi código (esto supone que su botón está en la hoja en la que desea copiar).

Tengo un botón en una hoja de cálculo que, cuando se presiona, debe permitir al usuario abrir un archivo, luego copiar las columnas AG de la hoja de cálculo "Datos", luego pegar los datos de esas columnas en la hoja actual.

Tengo un error de lógica en el código; se ejecuta, pero pega la selección en el lugar equivocado.

Tengo problemas para hacer referencia a los dos libros de trabajo.

Aquí está mi código:

Sub Button1_Click() Dim excel As excel.Application Dim wb As excel.Workbook Dim sht As excel.Worksheet Dim f As Object Set f = Application.FileDialog(3) f.AllowMultiSelect = False f.Show Set excel = CreateObject("excel.Application") Set wb = excel.Workbooks.Open(f.SelectedItems(1)) Set sht = wb.Worksheets("Data") sht.Activate sht.Columns("A:G").Select Selection.Copy Range("A1").Select ActiveSheet.Paste wb.Close End Sub


"Entonces, a partir de esta discusión, estoy pensando que este debería ser el código entonces".

Sub Button1_Click() Dim excel As excel.Application Dim wb As excel.Workbook Dim sht As excel.Worksheet Dim f As Object Set f = Application.FileDialog(3) f.AllowMultiSelect = False f.Show Set excel = CreateObject("excel.Application") Set wb = excel.Workbooks.Open(f.SelectedItems(1)) Set sht = wb.Worksheets("Data") sht.Activate sht.Columns("A:G").Copy Range("A1").PasteSpecial Paste:=xlPasteValues wb.Close End Sub

''Avíseme si esto es correcto o si se omite un paso. Gracias.