Estou tentando fazer uma macro de atualização. esta macro abrirá outras pastas de trabalho e, em seguida, examinará a última célula da coluna que contém dados e, em seguida, fará uma cópia desses dados e colará na planilha original. em seguida, uso fórmulas para calcular o endereço da célula, combinando os dados copiados dentro de um intervalo. Depois de combinar os dados, ele retorna um número de linha e a fórmula adiciona 1 para que seja a próxima linha abaixo e, em seguida, adiciona a letra da coluna. a fórmula fica assim
="R"&COMBINAÇÃO((S1),R1:R500,0)+1
agora que tenho o endereço da próxima célula que precisa ser adicionada à segunda pasta de trabalho, não sei como usá-lo. quando estou em vba, existe uma maneira de referenciar o valor de uma célula como uma referência de célula? no exemplo acima, a célula que ele retorna é "R34", a célula em que a fórmula está localizada é Q1, então como posso referenciar o valor de Q1 como o início do meu intervalo de cópias.
minha cópia sub fica assim
Sub COPYNEWRUNS()
Range("value of Q1:S500").Select
Selection.Copy
Windows("LINE 1 PRODUCTION.xlsm").Activate
Worksheets("LINE 1 - H").Activate
NextFree = Range("B9:B" & Rows.Count).Cells.SpecialCells(xlCellTypeBlanks).Row
Range("B" & NextFree).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
obviamente eu sei que o "valor de Q1" não vai funcionar, apenas coloquei lá para tentar ilustrar o que quero alcançar. também estou ciente de que esta provavelmente não é a melhor maneira de copiar e colar coisas e devo tentar evitar selecionar coisas o tempo todo, mas é assim que sei copiar e colar entre outras pastas de trabalho e isso funciona, então foi isso que usei para alcançá-lo. Estou aberto a maneiras melhores, se elas fizerem parte da sua resposta. Não estou preocupado em abrir a pasta de trabalho usando vba, pois este sub é um sub de teste. então, quando estiver funcionando, os bits importantes serão retirados e colocados no sub maior para que ele possa fazer toda a transferência de dados ao mesmo tempo. caso você ache que pode ser relevante, adicionarei o sub principal abaixo (mas isso está se desviando da minha pergunta original)
Sheet1.Activate
Workbooks.Open "S:\TEMP TEST\SHEETS\LINE 1 PRODUCTION.xlsm"
Windows("LINE 1 PRODUCTION.xlsm").Activate
Worksheets("BUTTON").Activate
ActiveSheet.Unprotect "AFFOC"
Windows("TOLEDO RUN ORDER.xlsm").Activate
Range("A3:H500").Select
Selection.Copy
Windows("LINE 1 PRODUCTION.xlsm").Activate
Worksheets("BUTTON").Activate
Range("A3").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveSheet.Protect "AFFOC"
Workbooks("LINE 1 PRODUCTION.xlsm").Close SaveChanges:=True
isso faz parte de um sub maior que abre uma pasta de trabalho, desprotege uma planilha específica, copia e cola os dados da planilha original na segunda, protege novamente a planilha e, em seguida, salva e fecha. e depois passa para a próxima folha.
qualquer conselho ou ajuda é muito apreciado. (para sua informação, sou um iniciante autodidata, sinto muito se algumas coisas passarem pela minha cabeça)