Суть задачи такова, есть 2 файла XLS(X), для упрощения можно предположить - 2 листа. В каждом - некая шапка, и таблица, которая может быть сдвинута от А1. В первом столбце обоих файлов - некие уникальные номера, вида 42652-4673. Таблицы достигают 10000строк и 20 столбцов. Значимым в задаче является именно номер. Первый файл - назовем его "большой" содержит больше элементов. Суть задачи - поиском сложить в каждую строку файла-результата информацию по каждой строке "большего" файла, например, столбцы a,b,c,g,h,s,t, и, в свою очередь, в столбцы f, m, k - из другого. Уникальные номера могут в каждом из файлов повторяться, это не глюк. Могут встречаться те, которые есть и в первом, и во втором, только в первом, только во втором. Количество строк не совпадает. многие поля могут быть пустыми, кроме первого - номера. Нумерация первого файла должна сохраняться, если добавляются строки - нужно как то выделять. Последний раз программировать на VBA, да и вообще программить приходилось в 2002-м, так что вспоминается с трудом. Панель инструментов и кнопки, формы и прочее я сделаю, но- массивов я и тогда толком не понимал. Поэтому полез в фунции и циклы, проще разобраться. К примеру, тут нашел Set rFind = Columns("A").Find(What:=Sheets("In_ws").Cells(i, "A").Text и If Not rFind Is Nothing Then Sheets("In_ws").Select Ins = Sheets("In_ws").Cells(i, "A").Value В итоге - из первого листа строки вставляются в результат (фактически, тупо копируются), rfind отрабатывает, но дальше заблудился с вытаскиванием из второго файла. Как передать значение адреса ячейки переменной чтобы вставить ячейку из него?
Базировался на этом [vba]
Код
Sub Procedure_1()
Dim lLastRowA As Long Dim lLastRowC As Long Dim i As Long Dim rFind As Excel.Range
If Not rFind Is Nothing Then Cells(lLastRowC, "C").Value = Cells(i, "A").Value lLastRowC = lLastRowC + 1 End If
Next i
Application.ScreenUpdating = True
End Sub
[/vba]
Всем доброго дня.
Суть задачи такова, есть 2 файла XLS(X), для упрощения можно предположить - 2 листа. В каждом - некая шапка, и таблица, которая может быть сдвинута от А1. В первом столбце обоих файлов - некие уникальные номера, вида 42652-4673. Таблицы достигают 10000строк и 20 столбцов. Значимым в задаче является именно номер. Первый файл - назовем его "большой" содержит больше элементов. Суть задачи - поиском сложить в каждую строку файла-результата информацию по каждой строке "большего" файла, например, столбцы a,b,c,g,h,s,t, и, в свою очередь, в столбцы f, m, k - из другого. Уникальные номера могут в каждом из файлов повторяться, это не глюк. Могут встречаться те, которые есть и в первом, и во втором, только в первом, только во втором. Количество строк не совпадает. многие поля могут быть пустыми, кроме первого - номера. Нумерация первого файла должна сохраняться, если добавляются строки - нужно как то выделять. Последний раз программировать на VBA, да и вообще программить приходилось в 2002-м, так что вспоминается с трудом. Панель инструментов и кнопки, формы и прочее я сделаю, но- массивов я и тогда толком не понимал. Поэтому полез в фунции и циклы, проще разобраться. К примеру, тут нашел Set rFind = Columns("A").Find(What:=Sheets("In_ws").Cells(i, "A").Text и If Not rFind Is Nothing Then Sheets("In_ws").Select Ins = Sheets("In_ws").Cells(i, "A").Value В итоге - из первого листа строки вставляются в результат (фактически, тупо копируются), rfind отрабатывает, но дальше заблудился с вытаскиванием из второго файла. Как передать значение адреса ячейки переменной чтобы вставить ячейку из него?
Базировался на этом [vba]
Код
Sub Procedure_1()
Dim lLastRowA As Long Dim lLastRowC As Long Dim i As Long Dim rFind As Excel.Range
jack_daniels, поскольку Вы новичок на форуме - объясняю: в топике даем краткое описание задачи, код оформляем тегами(значок # на панели), длинные листинги прячем под спойлер, выкладываем небольшой пример в файле Эксель. И обязательно прочтите правила форума, пока не начались санкции со стороны администрации.
jack_daniels, поскольку Вы новичок на форуме - объясняю: в топике даем краткое описание задачи, код оформляем тегами(значок # на панели), длинные листинги прячем под спойлер, выкладываем небольшой пример в файле Эксель. И обязательно прочтите правила форума, пока не начались санкции со стороны администрации.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Я не об этом. Даже "Война и мир", но в тегах vba, не займет более 12-и полных строк в посте. Ограничение на высоту есть, если код длиннее, то появляется полоса прокрутки Поэтому спойлеры не нужны
Я не об этом. Даже "Война и мир", но в тегах vba, не займет более 12-и полных строк в посте. Ограничение на высоту есть, если код длиннее, то появляется полоса прокрутки Поэтому спойлеры не нужны Serge_007
Код был не в тегах, а в моей Опере я тебе показывал, как выглядит код в тегах. Волнистый попугай. Не обрезает. Видел из лисы, как ограничивает, но забыл.. У самого все равно привычка - длинный листинг под спойлер. Это ж только у тебя режет, а на той же Планете иногда крышу рвет, когда листаешь по нескольку страниц кода из под рекордера. К-рый вообще читать незачем, выкинуть и новый написать
Код был не в тегах, а в моей Опере я тебе показывал, как выглядит код в тегах. Волнистый попугай. Не обрезает. Видел из лисы, как ограничивает, но забыл.. У самого все равно привычка - длинный листинг под спойлер. Это ж только у тебя режет, а на той же Планете иногда крышу рвет, когда листаешь по нескольку страниц кода из под рекордера. К-рый вообще читать незачем, выкинуть и новый написать KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Благодарю за конструктивность ответов всех участников. Разобрался сам. Скажите, как удалить тему? Обычно в редактировании сообщения ставится галка вроде "удалить сообщение" и все.
Благодарю за конструктивность ответов всех участников. Разобрался сам. Скажите, как удалить тему? Обычно в редактировании сообщения ставится галка вроде "удалить сообщение" и все.jack_daniels
когда ты читаешь книжку для удовольствия, можно хоть по одной строчке читать. Когда ты смотришь код, ты его анализируешь, ищешь ошибки, недочеты и т.п. Не вижу смысла ограничивать его в 12 или сколько нибудь строк. Т.к. приходиться держать в голове все, что вне области просмотра. Не хочется непонятно чем и зачем лишний раз загружать свой мозг. Я уже молчу, что при скроле кода, скролится еще и страница, что убивает восприятие.
Впрочем, мне все равно. Я не планирую больше выкладывать код на этом форуме Читать его также в большинстве случаев не буду, т.к. мне не удобно.
Я просто высказал свое мнение.
Если рассматривать "записюльки" - это приемлемо. Все, что серьезнее просто не воспринимается. А читать те самые "записюльки" мне не интересно.
Можешь в экселе вот так поработать и проверить "удобно или не удобно". Вы же все на эксель примеряете )
Не для того большие мониторы покупали, чтобы 12 строчек читать
когда ты читаешь книжку для удовольствия, можно хоть по одной строчке читать. Когда ты смотришь код, ты его анализируешь, ищешь ошибки, недочеты и т.п. Не вижу смысла ограничивать его в 12 или сколько нибудь строк. Т.к. приходиться держать в голове все, что вне области просмотра. Не хочется непонятно чем и зачем лишний раз загружать свой мозг. Я уже молчу, что при скроле кода, скролится еще и страница, что убивает восприятие.
Впрочем, мне все равно. Я не планирую больше выкладывать код на этом форуме Читать его также в большинстве случаев не буду, т.к. мне не удобно.
Я просто высказал свое мнение.
Если рассматривать "записюльки" - это приемлемо. Все, что серьезнее просто не воспринимается. А читать те самые "записюльки" мне не интересно.
Можешь в экселе вот так поработать и проверить "удобно или не удобно". Вы же все на эксель примеряете )
Не для того большие мониторы покупали, чтобы 12 строчек читать nerv
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
Подавляющее большинство выкладываемых на форум кодов либо укладываются в 12 строк, либо ненамного больше. Что-то более "серьезное" читать и анализировать с экрана могут единицы, а для того что бы в таком коде ещё что-то править придётся его перенести в VBE скорее всего. Так что смысла в "портянках" в теле поста, собственно нет, а внешний вид поста такой код портит. Вот для этого и ограничение
Подавляющее большинство выкладываемых на форум кодов либо укладываются в 12 строк, либо ненамного больше. Что-то более "серьезное" читать и анализировать с экрана могут единицы, а для того что бы в таком коде ещё что-то править придётся его перенести в VBE скорее всего. Так что смысла в "портянках" в теле поста, собственно нет, а внешний вид поста такой код портит. Вот для этого и ограничение
А мне пришлось в 5 Эксе с 13" монитором работать. Вот это засада. Тогда еще VBE не было, все это часто вылетало с ошибкой в перезагрузку(ДОС). Если кто помнит - монитор сильно выпуклый и защитное стекло от радиации. И мышка с шариком, в к-рую постоянно набивалась грязь, приходилось разбирать ее, чтоб почистить
А мне пришлось в 5 Эксе с 13" монитором работать. Вот это засада. Тогда еще VBE не было, все это часто вылетало с ошибкой в перезагрузку(ДОС). Если кто помнит - монитор сильно выпуклый и защитное стекло от радиации. И мышка с шариком, в к-рую постоянно набивалась грязь, приходилось разбирать ее, чтоб почистить KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728