Importowanie danych arkusza kalkulacyjnego Excel do innego arkusza kalkulacyjnego Excel zawierającego VBA

Musimy napisać arkusz kalkulacyjny Excel z kodem VBA; kod odczytuje i wykonuje operacje na danych w pierwszym arkuszu.

Użytkownik otrzyma arkusze kalkulacyjne zawierające dane, ale nie zawierające kodu VBA. Musimy być w stanie automatycznie importować dane z arkuszy kalkulacyjnych zawierających dane do arkusza kalkulacyjnego zawierającego kod VBA. Arkusze robocze zawierające dane mają ten sam format kolumn i typy danych, co arkusz roboczy arkusz kalkulacyjny zawierający dane.

Najlepiej byłoby otworzyć arkusz kalkulacyjny zawierający kod VBA, być przedstawiony z interfejsem pozwalającym użytkownikowi przejść do arkusza kalkulacyjnego zawierającego dane, kliknij OK i dane zostaną zaimportowane.

Jak byś to zrobił? Należy to zrobić za pomocą VBA w arkuszach kalkulacyjnych Excel.

Wielkie dzięki.

Author: Anthony, 2011-10-24

2 answers

To powinno zacząć: Używając VBA we własnym skoroszycie programu Excel, Poproś użytkownika o nazwę pliku jego pliku danych, następnie po prostu skopiuj ten stały zakres do skoroszytu docelowego (może to być ten sam skoroszyt, co włączone makro, lub trzeci skoroszyt). Oto szybki przykład vba jak to działa:

' Get customer workbook...
Dim customerBook As Workbook
Dim filter As String
Dim caption As String
Dim customerFilename As String
Dim customerWorkbook As Workbook
Dim targetWorkbook As Workbook

' make weak assumption that active workbook is the target
Set targetWorkbook = Application.ActiveWorkbook

' get the customer workbook
filter = "Text files (*.xlsx),*.xlsx"
caption = "Please Select an input file "
customerFilename = Application.GetOpenFilename(filter, , caption)

Set customerWorkbook = Application.Workbooks.Open(customerFilename)

' assume range is A1 - C10 in sheet1
' copy data from customer to target workbook
Dim targetSheet As Worksheet
Set targetSheet = targetWorkbook.Worksheets(1)
Dim sourceSheet As Worksheet
Set sourceSheet = customerWorkbook.Worksheets(1)

targetSheet.Range("A1", "C10").Value = sourceSheet.Range("A1", "C10").Value

' Close customer workbook
customerWorkbook.Close
 26
Author: jdh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-24 15:30:59

Dane mogą być pobierane do programu excel z innego programu excel za pomocą metody skoroszytu lub zewnętrznego odniesienia lub za pomocą funkcji importu danych.

Jeśli chcesz przeczytać lub nawet zaktualizować inny skoroszyt programu excel, można użyć tych metod. Nie możemy polegać tylko na VBA w tym zakresie.

Aby uzyskać więcej informacji na temat tych technik, kliknij tutaj, aby zapoznać się z Artykułem

 -1
Author: KumaraPush,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-26 11:57:50