Макрос не работает с кнопки

Я создал макрос, который импортирует данные из файла CSV, затем другой, который извлекает и вставляет его в другой лист, и третий, который запускает два предыдущих макроса подряд

Когда я запускаю их из редактора VBA или, поскольку во вкладке «Макросы» Excel работают отлично (они работают, только если я нахожусь на листе «DATABASE_POSTES», но это не так)

Проблема заключается в том, что если я назначу кнопку макросу для извлечения или соединения это дает ошибку (кнопки находятся на листе "DATABASE_POSTES").

  • Иногда он только копирует первый столбец
  • В других случаях выдает ошибку 1004, определенную приложением или объектом в этой строке:

    Set RngOrigen = Worksheets("BASE DATOS_CARGAS").Range(Cells(i, "AA"), 
    Cells(FFinCaso, "AA"))
    

Знаете ли вы, в чем заключается эта проблема, что макрос работает не с кнопки, а с других сайтов?

Sub extraccion_datos()

Dim UltiFila As Integer
Dim Caso, Extraccion As String
Dim FFinCaso As Integer
Dim ColPegado As Integer
Dim CasoCompara As String
Dim RngOrigen As Excel.Range
Dim RngPegado As Excel.Range



'Activación de los rangos
Set RngOrigen = Worksheets("BASE DATOS_CARGAS").Range("AA1")
Set RngPegado = Worksheets("FORMULAS").Range("A2")

UltiFila = Worksheets("BASE DATOS_CARGAS").UsedRange.SpecialCells(xlCellTypeLastCell).Row
'Celda que contiene el valor 1000 para pasar los N a kN y los Nmm a Nm
Worksheets("BASE DATOS_CARGAS").Range("V15").Copy
'Pegado especial que divide toda la columna AB por 1000
Worksheets("BASE DATOS_CARGAS").Range("AB1:AB" & UltiFila).SpecialCells(xlCellTypeConstants).PasteSpecial xlPasteValues, Operation:=xlDivide, SkipBlanks:=True
Application.CutCopyMode = False

For i = 1 To UltiFila
    Extraccion = Mid(Cells(i, "AB"), 2, 7)
        If Extraccion = "Loadset" Then
            Caso = Mid(Cells(i, "AB"), 10)
            FFinCaso = Worksheets("BASE DATOS_CARGAS").Cells(i, "AB").End(xlDown).Row
            For j = 1 To 30 Step 3
                CasoCompara = Worksheets("FORMULAS").Cells(1, j)
                If CasoCompara = Caso Then
                    ColPegado = j
                    Exit For
                End If
            Next j
            Set RngOrigen = Worksheets("BASE DATOS_CARGAS").Range(Cells(i, "AA"), Cells(FFinCaso, "AA"))
            RngOrigen.Copy
            Set RngPegado = Worksheets("FORMULAS").Cells(2, ColPegado)
            RngPegado.PasteSpecial xlPasteValues
            Set RngOrigen = Worksheets("BASE DATOS_CARGAS").Range(Cells(i, "AB"), Cells(FFinCaso, "AB"))
            RngOrigen.Copy
            Set RngPegado = Worksheets("FORMULAS").Cells(2, ColPegado + 2)
            RngPegado.PasteSpecial xlPasteValues
            Application.CutCopyMode = False


    End If

Next i

End Sub
0
задан 30.07.2017, 19:17
1 ответ

Доказательство помещая эту lГ-nea. У адресации с Range и смешанными Cells есть некие оттенки.

Set RngOrigen = Worksheets("BASE DATOS_CARGAS").Range(Cells(i, "AA").Address, Cells(FFinCaso, "AA").Address)
0
ответ дан 24.11.2019, 07:13