2017-02-22 15 views
0

Я работаю над очисткой данных о погоде, доступных онлайн на веб-сайте правительства Канады. Проблема звучит просто, но, к сожалению, я не смог получить то, что хочу, через VBA.VBA: Скопируйте одно значение, вставьте его в строку для фиксированного количества раз, а затем повторите

ПОЧЕМУ Я ПРОБЛЕМА?

Чтобы очистить данные, я хочу посмотреть, есть ли связь между погодой и настроением.

Данные разделены на разделы (т.е. один раздел по станции в течение одного года). Каждый раздел данных имеет ежедневную информацию о погоде (365 строк, 366 для високосного года) в табличной форме. Название станции нигде не упоминается в этих данных. Он упоминается только в одной ячейке в верхней части каждого раздела. Поэтому я хочу скопировать имя станции из секции заголовка и вставить ее в строку за все дни.

Для примера: Если в Канаде есть 8000 станций, которые ежедневно контролируют метеорологические данные, тогда будет 8000 разделов таблиц, каждый раздел будет иметь ежедневные данные о погоде.

Вот мой запрос ступенчато:

1) Скопируйте одно значение ячейки (ячейки B1) и вставить его вниз строку 4694 раз диапазон (AC27: AC4720). 4694 охватывает 10 лет + заголовки разделов, пустые места. 2) Сдвиньте один дополнительный ряд (так что оставьте AC4721 пустым) 3) Запустите процесс еще раз. Функция повторяет процесс до конца файла.

Формула на простом языке:

продолжения после пустого пространства ....

клетки на AC4722 сейчас, по отношению к этой ячейке формула должна скопировать значение B4696, повторите шаг (1) и шаг (2) запроса.

Таким образом, следующий AC9417 по отношению к этой ячейке должен скопировать значение B9391, повторить шаг (1) и шаг (2) запроса.

Разница между позициями (реляционных AC27, B1), (AC4722, B4696) (AC9417, B9391) всегда 26

Пожалуйста, помогите.

ответ

0

Для ввода значения все, что вам нужно сделать, это:

Range("AC27:AC4720") = Range("B1") 

Нет необходимости перебирать каждую строку.

Самая сложная часть разрабатывает диапазон, который вам нужно скопировать. Это можно сделать разными способами в зависимости от того, как выглядит ваш файл.

+0

Спасибо, КлинтБ, за ответ. Это диапазон ячеек. Этот шаблон будет продолжаться для станций 8000+. (Station, B, AC) (1, 1, 27) (2,4696,4722) (3,9391,9417) (4, 14086,14112) (5,18781,18807) (6,23476,23502) (7,28171,28197) ...... \t \t \t \t \t \t \t можно ли кодировать серию как петли или что-то? –

+0

Вам нужен какой-то идентификатор, с которого начинается новая станция. Есть ли столбец, который всегда имеет «Название станции:» или что-то подобное, вы можете его найти.Разработайте диапазон между первой найденной станцией и второй найденной станцией, затем установите диапазон, равный имени станции. – ClintB

Смежные вопросы