Изтеглете данни от затворена работна книга

Anonim

Извличането на данни от затворен файл в друга работна книга е често срещана заявка от повечето потребители на Excel. Те биха искали да изтеглят или консолидират данни от затворени файлове; това обаче не е възможно. Има решение, което помага да се реши този проблем. Решението е използването на макро код.

Въпрос: Ежедневно прекарвам време в копиране на данни от един файл в друг. Има два файла „Open.xls“ и „Closed.xls“ и искам да копирам данни от „Closed.xls“ в „Open.xls“ чрез VBA код.

Основни неща, които трябва да знаете:

  • Първото нещо е, че трябва да знаем „Използвания диапазон“ на затворената работна книга, т.е. „Closed.xls“ в отворената работна книга за напр. „Open.xls“
  • Можем да използваме функцията IF в Използвания диапазон на работната книга „Closed.xls“ в работната книга „Open.xls“ и тя ще извлече данните от работната книга „Closed.xls“
  • Ако референтната клетка е празна, се поставя #N/A. Използвайки метода specialcells, след това можете да изтриете всички грешки #N/A и да промените формулата на стойности

За да започнем с него, ще запазим два Excel файла 1) Open.xls 2) Closed.xls в пътя „D: \ Test Folder“

Следва моментната снимка на работната книга „Closed.xls“:

За автоматично запазване на данни от „Closed.xls“ файл във „Open.xls“ файл, трябва да следваме стъпките по -долу, за да стартираме VB редактор

  • Кликнете върху раздела Разработчик
  • От групата Кодове изберете Visual Basic

  • Копирайте кода по -долу в ThisWorkbook (Closed.xls)
 Private Sub Workbook_BeforeSave (ByVal SaveAsUI As Boolean, _ Cancel As Boolean) 'Поставете адреса на UsedRange на Sheet1 Closed.xls (тази работна книга)' --- Лист за коментари 2. Клетки (1, 1) = Sheet1.UsedRange.Address End Sub 

  • За да изтеглите данните в “Open.xls”, копирайте следния код в стандартния модул
 Sub Importdata () Dim AreaAddress As String Sheet1.UsedRange.Clear Sheet1.Cells (1, 1) = "= 'D: \ Test Folder \" & "[Closed.xls] Sheet2'! RC" AreaAddress = Sheet1.Cells ( 1, 1) С Sheet1.Range (AreaAddress) .FormulaR1C1 = "= IF ('D: \ Test Folder \" & "[Closed.xls] Sheet1'! RC =" "" ", NA (), 'D: \ Test Folder \ "& _" [Closed.xls] Sheet1 '! RC) "On Error Resume Next .SpecialCells (xlCellTypeFormulas, xlErrors). Изчистване при грешка GoTo 0 .Value = .Value End With End Sub 

  • Копирайте следния код в ThisWorkbook (Open.xls)
 Private Sub Workbook_Open () Изпълнете „Importdata“ End Sub 

Сега кодовете на VBA са настроени; всичко, което трябва да направим, е да отворим името на файла „Open.xls“. Следва моментната снимка на файла „Open.xls“:

Кодът не се ограничава до клетъчно копие от A1.usedrange; кодът ще избере началния диапазон и ще работи перфектно. Файловете са достъпни за изтегляне и ви препоръчваме да започнете.

Заключение: С VBA код можем да автоматизираме задачата за извличане на данни, без да отваряме работна книга на местоназначението и се спасяваме от ръчно копиране и поставяне.

Ако ви харесаха нашите блогове, споделете го с приятелите си във Facebook. Можете също така да ни следвате в Twitter и Facebook.

Ще се радваме да чуем от вас, уведомете ни как можем да подобрим, допълним или обновим работата си и да я подобрим. Пишете ни на имейл сайта