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
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.
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