powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Данные таблицы Excel из одной книги в другую с помощью макроса VBA
33 сообщений из 33, показаны все 2 страниц
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37141735
nikalex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!!!
Нужна помощь!!!
Есть две книги Excel (Книга1.xls и Книга2.xls ).
В первой книге есть готовая таблица в которой в столбце "A" введен номер, а в столбце "B" Фамилия
Во второй книге я в столбце "A" набираю вручную номер, а в столбце "B" вставляется Фамилия взятая из Книги 1 соответствующая введенному номеру.
Всё это желательно написать на VBA
Понимаю что задача простая, но не могу написать макрос

Заранее благодарю!!!
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37141780
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikalex2,

Задача действительно простая. Дайте электронку, скину номер куда надо положить 200 рублей, чтобы я выполнил эту задачу.
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37141871
nikalex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shamanusnikalex2,

Задача действительно простая. Дайте электронку, скину номер куда надо положить 200 рублей, чтобы я выполнил эту задачу.

Спасибо, но Ваша помощь мне не нужна...
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37141933
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: nikalex2
> > Shamanus
> Спасибо, но Ваша помощь мне не нужна...


Тогда или показывай как делал и что не получается или плати за готовое решение :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37141970
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оффтопИгорь Горбонос> Автор: nikalex2
> > Shamanus
> Спасибо, но Ваша помощь мне не нужна...

Тогда или показывай как делал и что не получается или плати за готовое решение :)

судя по обилию восклицательных знаков все-таки делал А
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37141973
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оффтоп а не, пардон, ошибся
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142002
nikalex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Public Function Список (Number)
Dim I As Integer
For I = 1 To 6000
If Worksheets.["Книга1.xls"].["Список"].Range("A" & I).Value = Number Then
Список = Worksheets.["Книга1.xls"].["Список].Range("B" & I).Value
End If
Next I
End Function
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142013
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: nikalex2
> Public Function Список (Number)


на первый взгляд все правильно. Не оптимально, но работать должно. Что не так с твоим решением?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142052
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбоносна первый взгляд все правильно. Не оптимально, но работать должно. Что не так с твоим решением?

Как такое может работать в VBA?
Может так?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Public Function Список(Number)
    Dim I As Integer
    For I =  1  To  6000 
        If Workbooks("Книга1.xls").Worksheets("Список").Range("A" & I).Value = Number Then
            Список = Workbooks("Книга1.xls").Worksheets("Список").Range("B" & I).Value
        End If
    Next I
End Function
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142057
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: nikalex2


я написал-бы так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Public Function Список(Number As Variant) As String
Dim I As Long, sh As Worksheet
' Функция вызывается из книги в которой она расположена и проверяет данные на листе "Список"
Set sh = ThisWorkbook.Sheets("Список")
With sh
    For I =  1  To  6000 
        If Val(.Cells(I,  1 ).Value) = Val(Number) Then
            Список = CStr(.Cells(I,  2 ).Value)
            ' Если нашли данные, то нечего гонять цикл
            Exit For
        End If
    Next I
End With
Set sh = Nothing
End Function


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142076
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А никому не кажется странным то, что присваивается функции значение то, которое ищем?
Тогда же проще так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Public Function Список(Number)
    Dim I As Integer
    For I =  1  To  6000 
        If Workbooks("Книга1.xls").Worksheets("Список").Range("A" & I).Value = Number Then
            Список = Number
            Exit For
        End If
    Next I
End Function
nikalex2, что должна вернуть функция? Может данные другой ячейки? Или номер строки листа "Список", где найдено значение?
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142088
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: The_Prist
> А никому не кажется странным ...

Нет, потому что присваивается значение столбца B :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142153
nikalex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[/quot]nikalex2, что должна вернуть функция? Может данные другой ячейки? Или номер строки листа "Список", где найдено значение?[/quot]
Взять данные из столбца "B" Книга2.xls и вставить значение в Книга1.xls
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142157
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь ГорбоносНет, потому что присваивается значение столбца B :)
Ой туплю... :-)
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142171
nikalex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_PristИгорь Горбоносна первый взгляд все правильно. Не оптимально, но работать должно. Что не так с твоим решением?

Как такое может работать в VBA?
Может так?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Public Function Список(Number)
    Dim I As Integer
    For I =  1  To  6000 
        If Workbooks("Книга1.xls").Worksheets("Список").Range("A" & I).Value = Number Then
            Список = Workbooks("Книга1.xls").Worksheets("Список").Range("B" & I).Value
        End If
    Next I
End Function


Это работает! А как добавить путь к книге?
Например Книга1.xls лежит в корне диска C т.е. C:\Книга1.xls
???
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142179
nikalex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВзять данные из столбца "B" Книга2.xls и вставить значение в Книга1.xls
перепутал, Взять данные из столбца "B" Книга1.xls и вставить значение в Книга2.xls
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142193
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: nikalex2
> Это работает! А как добавить путь к книге?

Никак. Обе книги должны быть открыты. После протягивания формулы скопировать-вставить как значения



Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142243
nikalex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНикак. Обе книги должны быть открыты. После протягивания формулы скопировать-вставить как значения

Т.е. жесткую привязку к конкретной книге лежащей по конкретному пути сделать нельзя??? Пусть даже если надо открывать одновременно обе книги
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142387
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikalex2,

Код: plaintext
Workbooks.Open "C:\Книга1.xls"
А потом делайте с ней, что хотите. Закрыть так:
Код: plaintext
Workbooks("Книга1.xls").Close False'если надо сохранить изменения в книге - True
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142600
nikalex2,
можно и путь к книге указать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
' **************************************
' процедуру скопировать в Книга2.xls
' в качестве параметра передать полное имя папки, содержащей справочник (Книга1.xls)

Sub AddLinkToClosedWorkBook(s$)
' s -  полное имя папки, содержащей справочник (Книга1.xls)
' ключи     - в столбце A
' значения - в столбце B 

Do While Right(s, 1 ) = "\": s = Left(s, Len(s) -  1 ): Loop

ThisWorkbook("Лист1").Range("B1:B6000").FormulaR1C1 = _
 "=VLOOKUP(RC[-1],'" & s & "\[Книга1.xls]Лист1'!R1C1:R6000C2,2,FALSE)"

' при желании заменить формулы значениями - раскомментировать следующий блок
'With ThisWorkbook("Лист1").Range("B1:B6000")
'  .Copy
'  .PasteSpecial xlPasteValues
'End With
End Sub

ЗЫ: будет работать медленне, чем метод, предложенный The_Prist
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142615
nikalex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторWorkbooks.Open "C:\Книга1.xls"

не открывается книга (((
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142622
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikalex2,

И как не открывается? Что пишет? может книги-то по данному пути такой нету?
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142633
nikalex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИ как не открывается? Что пишет? может книги-то по данному пути такой нету?
В ячейке Книга2.xls пишет #ЗНАЧ! и ничего не происходит. Книга1.xls лежит в корне на диске C
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142673
nikalex2,
открываете Книга1.xls еще раз
Обновляете данные в Книга2.xls.
Оп-ля - снова все работает. Пока не закроете Книга1.xls.
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142696
nikalex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробуй камнемnikalex2,
открываете Книга1.xls еще раз
Обновляете данные в Книга2.xls.
Оп-ля - снова все работает. Пока не закроете Книга1.xls.

Ну это понятно, что когда открыта Книга1.xls то всё работает
но функция предложенная The_Prist в принципе мне очень подходит
чтобы не искать файл постоянно и открывать его вручную, а чтобы он открывался автоматом при запуске Книга2.xls
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142715
nikalex2,
в модуль книги (называется ЭтаКнига) в Книга2.xls добавляете две процедуры, пробуете, что получилось.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Workbooks("Книга1.xls").Close False
End Sub

Private Sub Workbook_Open()
    Workbooks.Open "C:\Книга1.xls", ReadOnly:=True
End Sub

...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142781
nikalex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробуй камнемnikalex2,
в модуль книги (называется ЭтаКнига) в Книга2.xls добавляете две процедуры, пробуете, что получилось.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Workbooks("Книга1.xls").Close False
End Sub

Private Sub Workbook_Open()
    Workbooks.Open "C:\Книга1.xls", ReadOnly:=True
End Sub



Добавил.
Книга1.xls открывается!!!
Но теперь в Книга2.xls вместо данных стоят "0"
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142834
nikalex2,
покажите функцию, которую используете. Copy - Paste, никакого редактирования.
ЗЫ: чтобы кириллица нормально отображалась, - перед копированием преключите язык ввода на русский.
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142849
nikalex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Public Function Список(Number)
Dim I As Integer
For I = 1 To 30
If Workbooks("Книга1.xls").Worksheets("Список").Range("A" & I).Value = Number Then
Список = Workbooks("Книга1.xls").Worksheets("Список").Range("B" & I).Value
End If
Next I
End Function
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37142862
nikalex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин какая то ерунда, комп перезагрузил теперь работает
Всем большое спасибо!!!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #37896794
lelvisl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется аналогичная проблема.
ВРоде принцип работы фугкции указанной я понял.
Но по идее аргумент который в нее передается - айдишник для подстановки. Вопрос как его передать.
С макросами в экселе общаюсь в первый раз.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #39415977
Stepan_888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья у меня такая же ситуация похожая. Помогите добить код. На листе "ЕИИС" есть данные - инвентаризационный номер и наименование. На листе "Сканер" в колонке А просто инвентарные номера. При нажатии на кнопку, он сравнивает инвентарные номера и в колонку B кидает наименования.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub CommandButton3_Click()
Dim I As Integer
For I = 1 To 6000
If Sheets("ЕИИС").Range("B" & I).Value = Number Then
Список = Worksheets.["ЕИИС"].["Список"].Range("B" & I).Value
End If
Next I
End Sub

Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
Данные таблицы Excel из одной книги в другую с помощью макроса VBA
    #39416004
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А просто формула ВПР Вам не подходит?
...
Рейтинг: 0 / 0
33 сообщений из 33, показаны все 2 страниц
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Данные таблицы Excel из одной книги в другую с помощью макроса VBA
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]