atualizar dados de diferentes pastas de trabalho em planilha um mestre

votos
0

Oi eu sou novo para VBA então desculpas se o meu código parece ruim. Eu tenho uma macro que atualiza células específicas em uma coluna em uma planilha mestre, puxando dados de um livro específico. No entanto, gostaria que o meu macro para saber que eu estou puxando dados de outro livro sem especificar workbooks.Open(FileName)para que eu possa atualizar automaticamente a minha folha de mestre de qualquer outro livro aberto.

O principal problema é que, uma vez que os mesmos dados são encontrados em células diferentes em várias pastas de trabalho, eu estou querendo saber como posso copiar esses dados ao se referir às suas diferentes células para cada livro.

Código:

Sub UpdateData()

Dim wb1 As Workbook
Dim wb2 As Workbook
Dim ws1 As Worksheet
Dim EMS As Worksheet
Dim TD As Worksheet
Dim JV1 As Worksheet

Application.ScreenUpdating = False

Set wb1 = ThisWorkbook
wb1.Application.Visible = True
Set ws1 = wb1.Sheets( Master Data)
Set wb2 = Workbooks.Open(C:\Users\HONL120\Desktop\Sept HC Reports\HR Headcount Report 2018 Australia SEPTEMBER.XLSX)
wb2.Application.Visible = False
Set EMS = Sheets(Employee Movement Summary)
EMS.Range(J19).Copy
ws1.Range(J34).PasteSpecial xlPasteValues

Set TD = Sheets(Turnover Dashboard)
TD.Range(J44).Copy
ws1.Range(J2).PasteSpecial xlPasteValues
TD.Range(J47).Copy
ws1.Range(J3).PasteSpecial xlPasteValues

EMS.Range(J10).Copy
ws1.Range(J5).PasteSpecial xlPasteValues
EMS.Range(J11).Copy
ws1.Range(J6).PasteSpecial xlPasteValues
EMS.Range(J16).Copy
ws1.Range(J7).PasteSpecial xlPasteValues
EMS.Range(J17).Copy
ws1.Range(J8).PasteSpecial xlPasteValues

TD.Range(K3:K7).Copy
ws1.Range(J10:J14).PasteSpecial xlPasteValues
TD.Range(J32:J43).Copy
ws1.Range(J16:J27).PasteSpecial xlPasteValues

Set JV1 = Sheets(JV1)
JV1.Range(Q26).Copy
ws1.Range(J29).PasteSpecial xlPasteValues
JV1.Range(Q28:Q29).Copy
ws1.Range(J30:J31).PasteSpecial xlPasteValues

Application.ScreenUpdating = True
wb2.Application.Visible = True
End Sub

Assim, por exemplo, nesta outra pasta de trabalho, a gama para copiar TD.Range(J44).Copybaseia-se na célula J44, mas isto pode não ser o caso de outras pastas de trabalho com o mesmo tipo de dados.

Da mesma forma, eu gostaria de copiar de outro livro aberto não importa o que é aberta, e não especificar um nome de arquivo como tal Set wb2 = Workbooks.Open(C:\Users\HONL120\Desktop\Sept HC Reports\HR Headcount Report 2018 Australia SEPTEMBER.XLSX).

Existe uma maneira de automatizar isso? ou devo encontrar as células específicas para copiar em cada livro manualmente? Desde já, obrigado!

Publicado 08/11/2018 em 06:35
fonte usuário
Em outras línguas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more