por que estou recebendo erro de compilação ao tentar copiar dados da planilha mestre para várias planilhas

1

Sou muito novo no VBA e nas macros, por isso peço desculpas se for simples. Eu encontrei posts semelhantes, mas nada que eu possa ajustar ao meu problema. Eu encontrei o código para criar uma nova planilha para cada nova entrada em uma lista na minha pasta de trabalho que funciona bem. Eu gostaria de ter cada linha na folha mestre copiada na guia apropriada criada na macro acima se o valor na coluna BT corresponder ao nome da nova planilha. Eu encontrei o seguinte código que eu pensei que tinha ajustado corretamente, mas eu estou recebendo um 'erro de compilação - sub ou função não definida' quando eu executá-lo. minha planilha mestre é chamada de 'final' e a coluna BT contém o valor que corresponde aos outros nomes da planilha. Meu entendimento do -71 é que é o número de colunas à esquerda da coluna que está sendo referenciada.

Sub copyPasteData()
 Dim strSourceSheet As String
 Dim strDestinationSheet As String
 Dim lastRow As Long

strSourceSheet = "final"

Sheets(strSourceSheet).Visible = True
 Sheets(strSourceSheet).Select

Range("BT3").Select
 Do While ActiveCell.Value <> ""
 strDestinationSheet = ActiveCell.Value
 ActiveCell.Offset(0, -71).Resize(1, ActiveCell.CurrentRegion.Columns.Count).Select
 Selection.Copy
 Sheets(strDestinationSheet).Visible = True
 Sheets(strDestinationSheet).Select
 lastRow = LastRowInOneColumn("A")
 Cells(lastRow + 1, 1).Select
 Selection.PasteSpecial xlPasteValues
 Application.CutCopyMode = False
 Sheets(strSourceSheet).Select
 ActiveCell.Offset(0, 2).Select
 ActiveCell.Offset(1, 0).Select
 Loop
 End Sub

A cada mês, preciso colar novos dados na planilha principal e gostaria que as outras planilhas fossem alteradas para corresponder. Grato por qualquer ajuda que vai me salvar ter que filtrar muitas vezes e copiar colar em cada guia. Eu usei as tags de 2007 e 2010, já que tenho que executá-lo em ambos.

    
por Caroline Allen 23.03.2016 / 19:14

1 resposta

0

lastRow = LastRowInOneColumn("A")
Substitua a linha acima, acho que LastRowInOneColumn não é uma função definida, com

lastRow = Sheets(strDestinationSheet).Range("A1").End(xlDown).Row
Ele te dá a última linha na coluna A

    
por 23.03.2016 / 20:19