Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Перенос данных из массива в массив с автозаполнением(решено) - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перенос данных из массива в массив с автозаполнением(решено) (Макросы/Sub)
Перенос данных из массива в массив с автозаполнением(решено)
zegor Дата: Воскресенье, 16.11.2014, 13:13 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 132
Репутация: 1 ±
Замечаний: 0% ±

Excel 2007
Приветствую вас, знатоки и любители! Сам я, можно сказать, только вчера узнал о существовании такой вещи как Excel. Ну да ближе к делу. Есть документ с двумя листами в нём, первый лист источник данных для второго. Как бы я не выделывался с формулами результата ноль, по силе своих возможностей конечно.

Задумка такова:
1) Счёт матча из массива с выпадающими списками на первом листе переносится на лист второй в массив "B2:AW25", самая левая таблца. Данные на первом листе будут постоянно меняться (счёт матчей и название команд). При заполнении второго листа в массиве "B2:AW25" к уже имеющимся данным будут дополняться вновь введённы с листа первого, в соответствующие ячейки. В смысле таблица на втором листе будет наполняться всё больше и больше.
2) Теперь операции только со вторым листом. Как только левая таблица получает новые данные они заполняют следующие свободные ячейки (вслед за уже заполненными) в правой таблице. Принцып- "Саутгемптон 1-0 Лутон Таун", в строке для Саутгемптон в правой таблице, в следующих свободных ячейках (сразу после уже заполненных), появится пара 1 0. В строке для Лутон Таун вводится зеркальное отображение счёта в матче, т.е. 0 1.

Четвёртый день мозг гну, отчаянние одолевает. Вразумите тугодума.
К сообщению приложен файл: 8459747.xlsm (30.8 Kb)


Сообщение отредактировал zegor - Понедельник, 17.11.2014, 01:02
 
Ответить
СообщениеПриветствую вас, знатоки и любители! Сам я, можно сказать, только вчера узнал о существовании такой вещи как Excel. Ну да ближе к делу. Есть документ с двумя листами в нём, первый лист источник данных для второго. Как бы я не выделывался с формулами результата ноль, по силе своих возможностей конечно.

Задумка такова:
1) Счёт матча из массива с выпадающими списками на первом листе переносится на лист второй в массив "B2:AW25", самая левая таблца. Данные на первом листе будут постоянно меняться (счёт матчей и название команд). При заполнении второго листа в массиве "B2:AW25" к уже имеющимся данным будут дополняться вновь введённы с листа первого, в соответствующие ячейки. В смысле таблица на втором листе будет наполняться всё больше и больше.
2) Теперь операции только со вторым листом. Как только левая таблица получает новые данные они заполняют следующие свободные ячейки (вслед за уже заполненными) в правой таблице. Принцып- "Саутгемптон 1-0 Лутон Таун", в строке для Саутгемптон в правой таблице, в следующих свободных ячейках (сразу после уже заполненных), появится пара 1 0. В строке для Лутон Таун вводится зеркальное отображение счёта в матче, т.е. 0 1.

Четвёртый день мозг гну, отчаянние одолевает. Вразумите тугодума.

Автор - zegor
Дата добавления - 16.11.2014 в 13:13
ShAM Дата: Воскресенье, 16.11.2014, 13:47 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
zegor здравствуйте. Посмотрите тему:
http://www.excelworld.ru/forum/3-1835-1
По-моему для Вас самое то.
 
Ответить
Сообщениеzegor здравствуйте. Посмотрите тему:
http://www.excelworld.ru/forum/3-1835-1
По-моему для Вас самое то.

Автор - ShAM
Дата добавления - 16.11.2014 в 13:47
Gustav Дата: Воскресенье, 16.11.2014, 15:05 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2748
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Я бы вел базу всех матчей (как в "не том пальто"), тур за туром. В этом случае возможно решение этой задачки на формулах. Плюс к этому преимуществу (а это преимущество) мне было бы жалко собственных затраченных усилий на ввод очередного тура. Т.е. я бы не стал затирать результаты предыдущего тура новыми результатами, а просто располагал бы их всё ниже и ниже.

Ваш подход, конечно, тоже имеет право на жизнь. Но в этом случае без макросов не обойтись. Риском является момент ошибочного ввода, не замеченного сразу. При ошибке выковыривание неверного результата из "шахматки" после отработки макроса может быть достаточно утомительным, в то время как в формульном решении на первом листе просто редактируется ошибочная ячейка, после чего на втором листе всё "исправляется" автоматически.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеЯ бы вел базу всех матчей (как в "не том пальто"), тур за туром. В этом случае возможно решение этой задачки на формулах. Плюс к этому преимуществу (а это преимущество) мне было бы жалко собственных затраченных усилий на ввод очередного тура. Т.е. я бы не стал затирать результаты предыдущего тура новыми результатами, а просто располагал бы их всё ниже и ниже.

Ваш подход, конечно, тоже имеет право на жизнь. Но в этом случае без макросов не обойтись. Риском является момент ошибочного ввода, не замеченного сразу. При ошибке выковыривание неверного результата из "шахматки" после отработки макроса может быть достаточно утомительным, в то время как в формульном решении на первом листе просто редактируется ошибочная ячейка, после чего на втором листе всё "исправляется" автоматически.

Автор - Gustav
Дата добавления - 16.11.2014 в 15:05
zegor Дата: Воскресенье, 16.11.2014, 19:02 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 132
Репутация: 1 ±
Замечаний: 0% ±

Excel 2007
Gustav, спасибо и вам за внимание к теме, плюсую в репутацию. Только вся соль таблиц моих именно во введении очередных туров, а затирание результатов предыдущего тура новыми данными происходит только на первом листе в массиве "D2:E13". Второй лист не редактируется никак, только дополняется новыми данными. Про ошибки тоже спасибо, учту. Спасибо за участие, не прошли мимо в смысле. ^_^
 
Ответить
СообщениеGustav, спасибо и вам за внимание к теме, плюсую в репутацию. Только вся соль таблиц моих именно во введении очередных туров, а затирание результатов предыдущего тура новыми данными происходит только на первом листе в массиве "D2:E13". Второй лист не редактируется никак, только дополняется новыми данными. Про ошибки тоже спасибо, учту. Спасибо за участие, не прошли мимо в смысле. ^_^

Автор - zegor
Дата добавления - 16.11.2014 в 19:02
ShAM Дата: Воскресенье, 16.11.2014, 19:35 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
По макросам это в другой раздел получается?
Да, попросите модераторов перенести. И надо продумать, когда переносить данные с 1-го листа на 2-ой? Построчно, т.е. заполнили строчку - перенеслось и т.д., или заполнили очередной тур, например, нажали кнопку - перенеслось?
 
Ответить
Сообщение
По макросам это в другой раздел получается?
Да, попросите модераторов перенести. И надо продумать, когда переносить данные с 1-го листа на 2-ой? Построчно, т.е. заполнили строчку - перенеслось и т.д., или заполнили очередной тур, например, нажали кнопку - перенеслось?

Автор - ShAM
Дата добавления - 16.11.2014 в 19:35
ShAM Дата: Воскресенье, 16.11.2014, 20:49 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Вроде, перенесли :)
Еще пара уточнений: У Вас турнир 1-круговой, или 2-й круг куда девать? Зачем на листе "Шахматка" правая таблица?
 
Ответить
СообщениеВроде, перенесли :)
Еще пара уточнений: У Вас турнир 1-круговой, или 2-й круг куда девать? Зачем на листе "Шахматка" правая таблица?

Автор - ShAM
Дата добавления - 16.11.2014 в 20:49
ShAM Дата: Воскресенье, 16.11.2014, 21:20 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
каждый с каждым играет по два раза, раз на выезде и раз дома.
Гы, это 2-круговой. Вы сами себе противоречите :)
Например, Бернли дома с Брайтоном сыграл, в Шахматку записали. А когда Бернли поехал с Брайтоном играть, куда в Шахматку писАть?
 
Ответить
Сообщение
каждый с каждым играет по два раза, раз на выезде и раз дома.
Гы, это 2-круговой. Вы сами себе противоречите :)
Например, Бернли дома с Брайтоном сыграл, в Шахматку записали. А когда Бернли поехал с Брайтоном играть, куда в Шахматку писАть?

Автор - ShAM
Дата добавления - 16.11.2014 в 21:20
zegor Дата: Воскресенье, 16.11.2014, 21:32 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 132
Репутация: 1 ±
Замечаний: 0% ±

Excel 2007
:) так и быть двукруговой, виноват.

Допустим Бёрнли 5-0 Брайтон. Записали в левой таблице так- по горизонтали Бёрнли, а по вертикали Брайтон. На пересечении записываем 5-0, в ячейках будет выглядеть просто как 5 0

Когда Бёрнли едет к Брайтону в гости и играет Брайтон 0-1 Бёрнли то По тому же принцыпу- по горизонтали Брайтон, по вертикали Бёрнли и на пересечении 0-1, по ячейкам 0 1

Файлик приложил :)
К сообщению приложен файл: 4617865.xlsm (28.2 Kb)


Сообщение отредактировал zegor - Воскресенье, 16.11.2014, 21:34
 
Ответить
Сообщение:) так и быть двукруговой, виноват.

Допустим Бёрнли 5-0 Брайтон. Записали в левой таблице так- по горизонтали Бёрнли, а по вертикали Брайтон. На пересечении записываем 5-0, в ячейках будет выглядеть просто как 5 0

Когда Бёрнли едет к Брайтону в гости и играет Брайтон 0-1 Бёрнли то По тому же принцыпу- по горизонтали Брайтон, по вертикали Бёрнли и на пересечении 0-1, по ячейкам 0 1

Файлик приложил :)

Автор - zegor
Дата добавления - 16.11.2014 в 21:32
ShAM Дата: Воскресенье, 16.11.2014, 22:19 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Пробуйте.
К сообщению приложен файл: zegor.xlsm (45.6 Kb)
 
Ответить
СообщениеПробуйте.

Автор - ShAM
Дата добавления - 16.11.2014 в 22:19
zegor Дата: Воскресенье, 16.11.2014, 22:37 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 132
Репутация: 1 ±
Замечаний: 0% ±

Excel 2007
Идеально! Просто идеально! Благодарю от всей души. Спасибо огромное. Есть среди людей светлые головы. Мне, поверьте, для повторения вашего результата и года наверняка не хватит. Вы хороший человек hands
 
Ответить
СообщениеИдеально! Просто идеально! Благодарю от всей души. Спасибо огромное. Есть среди людей светлые головы. Мне, поверьте, для повторения вашего результата и года наверняка не хватит. Вы хороший человек hands

Автор - zegor
Дата добавления - 16.11.2014 в 22:37
ShAM Дата: Воскресенье, 16.11.2014, 23:17 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Ну, наверное, Вы 2 раза нажали на кнопку с одним и тем же результатом. %)
 
Ответить
СообщениеНу, наверное, Вы 2 раза нажали на кнопку с одним и тем же результатом. %)

Автор - ShAM
Дата добавления - 16.11.2014 в 23:17
ShAM Дата: Воскресенье, 16.11.2014, 23:28 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Найн, один раз.
Сейчас скачал, нажал, проверил - 1 столбец. yes
 
Ответить
Сообщение
Найн, один раз.
Сейчас скачал, нажал, проверил - 1 столбец. yes

Автор - ShAM
Дата добавления - 16.11.2014 в 23:28
Gustav Дата: Понедельник, 17.11.2014, 17:15 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2748
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Были относительно свободные "окошки" в течение дня, повозился с этой задачкой, чтобы показать и формульный вариант решения.

Получилось. За основу взял английский футбольный "Чемпионшип" 2014-2015, который сейчас активно продолжается, сыграно 17 туров из 46. Информацию о турнире можно получить по ссылке: http://www.greatfootball.com.ua/england_ch/eng15-1dk.php .

На лист ЧШ, как и хотел, вместо сомнительного набора полей со списками развернул календарь игр с результатами. Там же можно и продолжать вести дальше, если интересно.

Лист "Шахматка" напичкан формулами. Сама "шахматка" в левой части - готова полностью, а правая часть ("результаты по турам") - до 18-го тура включительно. Это ограничение сделано, чтобы не выйти за размер файла 100 Кб при выкладывании. После скачивания, уже на своем компьютере можно продлить формулы правой части копированием до последнего 46-го тура.

Разных формул на листе "Шахматка" всего четыре: в паре ячеек С2:D2 и в паре ячеек AZ2:BA2. Все остальные ячейки левой "шахматки" и правой части заполнены копированием этих двух пар ячеек. Все формулы - массивовые (Ctrl+Shift+Enter), это следует иметь в виду, если захочется поредактировать и порассматривать формулы "поближе".
К сообщению приложен файл: Cheship.xlsx (91.4 Kb)


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеБыли относительно свободные "окошки" в течение дня, повозился с этой задачкой, чтобы показать и формульный вариант решения.

Получилось. За основу взял английский футбольный "Чемпионшип" 2014-2015, который сейчас активно продолжается, сыграно 17 туров из 46. Информацию о турнире можно получить по ссылке: http://www.greatfootball.com.ua/england_ch/eng15-1dk.php .

На лист ЧШ, как и хотел, вместо сомнительного набора полей со списками развернул календарь игр с результатами. Там же можно и продолжать вести дальше, если интересно.

Лист "Шахматка" напичкан формулами. Сама "шахматка" в левой части - готова полностью, а правая часть ("результаты по турам") - до 18-го тура включительно. Это ограничение сделано, чтобы не выйти за размер файла 100 Кб при выкладывании. После скачивания, уже на своем компьютере можно продлить формулы правой части копированием до последнего 46-го тура.

Разных формул на листе "Шахматка" всего четыре: в паре ячеек С2:D2 и в паре ячеек AZ2:BA2. Все остальные ячейки левой "шахматки" и правой части заполнены копированием этих двух пар ячеек. Все формулы - массивовые (Ctrl+Shift+Enter), это следует иметь в виду, если захочется поредактировать и порассматривать формулы "поближе".

Автор - Gustav
Дата добавления - 17.11.2014 в 17:15
zegor Дата: Среда, 07.01.2015, 19:53 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 132
Репутация: 1 ±
Замечаний: 0% ±

Excel 2007
Вечер добрый.
Дабы не открывать новой темы пишу сюда. Я изменил способ заполнения в массиве "Z3:AC12" и код стал выдавать несоответствие типов (если правильно перевёл Type mismatch). Всё на что у меня хватает соображалки- нужен другой оператор или операторы, я скорее всего не прав. Поменял способ заполнения потому что прислушался к совету Gustav, но макрос мне всё же очень необходим. Посмотрите если не сложно, ребят.
[vba]
Код
Sub Perenos()
Dim a, i%, iLastCol%
a = Range("C2:F11").Value
With Worksheets("Шахматка")
       For i = 1 To 10
           If a(i, 2) <> "" And a(i, 3) <> "" Then
              .Cells(a(i, 1) + 1, a(i, 4) * 2) = a(i, 2)
              .Cells(a(i, 1) + 1, a(i, 4) * 2 + 1) = a(i, 3)
              iLastCol = .Cells(a(i, 1) + 1, Columns.Count).End(xlToLeft).Column
                   If iLastCol < 44 Then
                      .Cells(a(i, 1) + 1, 43) = a(i, 2)
                      .Cells(a(i, 1) + 1, 44) = a(i, 3)
                   Else
                      .Cells(a(i, 1) + 1, iLastCol + 1) = a(i, 2)
                      .Cells(a(i, 1) + 1, iLastCol + 2) = a(i, 3)
                   End If
              iLastCol = .Cells(a(i, 4) + 1, Columns.Count).End(xlToLeft).Column
                   If iLastCol < 44 Then
                      .Cells(a(i, 4) + 1, 43) = a(i, 3)
                      .Cells(a(i, 4) + 1, 44) = a(i, 2)
                   Else
                      .Cells(a(i, 4) + 1, iLastCol + 1) = a(i, 3)
                      .Cells(a(i, 4) + 1, iLastCol + 2) = a(i, 2)
                   End If
           End If
       Next i
End With
End Sub
[/vba]


Сообщение отредактировал zegor - Среда, 07.01.2015, 23:33
 
Ответить
СообщениеВечер добрый.
Дабы не открывать новой темы пишу сюда. Я изменил способ заполнения в массиве "Z3:AC12" и код стал выдавать несоответствие типов (если правильно перевёл Type mismatch). Всё на что у меня хватает соображалки- нужен другой оператор или операторы, я скорее всего не прав. Поменял способ заполнения потому что прислушался к совету Gustav, но макрос мне всё же очень необходим. Посмотрите если не сложно, ребят.
[vba]
Код
Sub Perenos()
Dim a, i%, iLastCol%
a = Range("C2:F11").Value
With Worksheets("Шахматка")
       For i = 1 To 10
           If a(i, 2) <> "" And a(i, 3) <> "" Then
              .Cells(a(i, 1) + 1, a(i, 4) * 2) = a(i, 2)
              .Cells(a(i, 1) + 1, a(i, 4) * 2 + 1) = a(i, 3)
              iLastCol = .Cells(a(i, 1) + 1, Columns.Count).End(xlToLeft).Column
                   If iLastCol < 44 Then
                      .Cells(a(i, 1) + 1, 43) = a(i, 2)
                      .Cells(a(i, 1) + 1, 44) = a(i, 3)
                   Else
                      .Cells(a(i, 1) + 1, iLastCol + 1) = a(i, 2)
                      .Cells(a(i, 1) + 1, iLastCol + 2) = a(i, 3)
                   End If
              iLastCol = .Cells(a(i, 4) + 1, Columns.Count).End(xlToLeft).Column
                   If iLastCol < 44 Then
                      .Cells(a(i, 4) + 1, 43) = a(i, 3)
                      .Cells(a(i, 4) + 1, 44) = a(i, 2)
                   Else
                      .Cells(a(i, 4) + 1, iLastCol + 1) = a(i, 3)
                      .Cells(a(i, 4) + 1, iLastCol + 2) = a(i, 2)
                   End If
           End If
       Next i
End With
End Sub
[/vba]

Автор - zegor
Дата добавления - 07.01.2015 в 19:53
ShAM Дата: Среда, 07.01.2015, 21:07 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
И Вам здравствуйте. Куда Sheet2 подевали? И у меня Type mismatch не дает.
 
Ответить
СообщениеИ Вам здравствуйте. Куда Sheet2 подевали? И у меня Type mismatch не дает.

Автор - ShAM
Дата добавления - 07.01.2015 в 21:07
zegor Дата: Среда, 07.01.2015, 21:21 | Сообщение № 16
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 132
Репутация: 1 ±
Замечаний: 0% ±

Excel 2007
ShAM, теперь всё там :)

И у меня Type mismatch не дает.
я без понятия, может у меня офис 2007 у вас 2010?


Сообщение отредактировал zegor - Среда, 07.01.2015, 23:32
 
Ответить
СообщениеShAM, теперь всё там :)

И у меня Type mismatch не дает.
я без понятия, может у меня офис 2007 у вас 2010?

Автор - zegor
Дата добавления - 07.01.2015 в 21:21
ShAM Дата: Среда, 07.01.2015, 21:35 | Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
теперь всё там
Теперь нужно, чтобы и тут что-то было. :) Т.е Что, Откуда, Куда, Когда должно попадать?
ЗЫ: А то слишком много таблиц на разных листах %)
 
Ответить
Сообщение
теперь всё там
Теперь нужно, чтобы и тут что-то было. :) Т.е Что, Откуда, Куда, Когда должно попадать?
ЗЫ: А то слишком много таблиц на разных листах %)

Автор - ShAM
Дата добавления - 07.01.2015 в 21:35
ShAM Дата: Среда, 07.01.2015, 23:14 | Сообщение № 18
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Ага, понял я Ваш Type mismatch :)
Попробуйте встать в ячейку В2 и стрелкой вправо перейдите в ячейку, где Liverpool. Вы увидите (в строке формул), что там число восемь. Вот с этими числами мы и работали. Теперь в ячейке Р2 стоит текст "Liverpool". Вот и несоответствие типов: к тексту пытаться что-то прибавить или умножить.
Смотрите исправленный вариант, использовал функцию листа ПОИСКПОЗ().
К сообщению приложен файл: zegor_new.xlsm (86.0 Kb)
 
Ответить
СообщениеАга, понял я Ваш Type mismatch :)
Попробуйте встать в ячейку В2 и стрелкой вправо перейдите в ячейку, где Liverpool. Вы увидите (в строке формул), что там число восемь. Вот с этими числами мы и работали. Теперь в ячейке Р2 стоит текст "Liverpool". Вот и несоответствие типов: к тексту пытаться что-то прибавить или умножить.
Смотрите исправленный вариант, использовал функцию листа ПОИСКПОЗ().

Автор - ShAM
Дата добавления - 07.01.2015 в 23:14
zegor Дата: Четверг, 08.01.2015, 20:18 | Сообщение № 19
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 132
Репутация: 1 ±
Замечаний: 0% ±

Excel 2007
Постигла меня беда в виде ошибки 400. Всё что я сделал это заменил данные на листе "Sheet1" на новые. Мне, право, уже неловко писать сюда.
При попытке вывести код из кода листа в модуль макросов и таким путём добиться хоть чего-то выдаёт ошибку 1004 и пеняет на эту строчку[vba]
Код
gost = Application.WorksheetFunction.Match(Range("S" & i + 1), [A1:A20], 0)
[/vba]


Сообщение отредактировал zegor - Четверг, 08.01.2015, 21:11
 
Ответить
СообщениеПостигла меня беда в виде ошибки 400. Всё что я сделал это заменил данные на листе "Sheet1" на новые. Мне, право, уже неловко писать сюда.
При попытке вывести код из кода листа в модуль макросов и таким путём добиться хоть чего-то выдаёт ошибку 1004 и пеняет на эту строчку[vba]
Код
gost = Application.WorksheetFunction.Match(Range("S" & i + 1), [A1:A20], 0)
[/vba]

Автор - zegor
Дата добавления - 08.01.2015 в 20:18
Pelena Дата: Четверг, 08.01.2015, 20:55 | Сообщение № 20
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
заменил данные на листе "Sheet1" на новые

Значит, дело в новых данных:
1) пробелы в конце названий. Устранить можно, добавив в указанную строку и в предыдущую Trim
[vba]
Код
gost = Application.WorksheetFunction.Match(Trim(Range("S" & i + 1)), [A1:A20], 0)
[/vba]
2) разное написание названий, например, вместо Newcastle United - Newcastle Und, а West Ham вообще нет в списке.

В общем, проверяйте данные


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
заменил данные на листе "Sheet1" на новые

Значит, дело в новых данных:
1) пробелы в конце названий. Устранить можно, добавив в указанную строку и в предыдущую Trim
[vba]
Код
gost = Application.WorksheetFunction.Match(Trim(Range("S" & i + 1)), [A1:A20], 0)
[/vba]
2) разное написание названий, например, вместо Newcastle United - Newcastle Und, а West Ham вообще нет в списке.

В общем, проверяйте данные

Автор - Pelena
Дата добавления - 08.01.2015 в 20:55
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перенос данных из массива в массив с автозаполнением(решено) (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!