Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel: заполнить колонку по условию / 15 сообщений из 15, страница 1 из 1
21.06.2013, 16:35
    #38306528
due
due
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: заполнить колонку по условию
У меня не совсем тривиальная задача - нужно заполнить справочник по следующему принципу:
1. Если в ячейке "F1" стоит значение "1", то в ячейку "I1" нужно добавить значение "15".
2. Если в ячейке "F2" стоит значение "11", то в ячейку "I2" нужно добавить значение "18".
... и т.д.


Как это можно сделать с помощью VBA?
...
Рейтинг: 0 / 0
21.06.2013, 16:36
    #38306530
due
due
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: заполнить колонку по условию
Пример таблицы:
...
Рейтинг: 0 / 0
21.06.2013, 16:38
    #38306534
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: заполнить колонку по условию
Обязательно VBA? Формулой нельзя?
...
Рейтинг: 0 / 0
21.06.2013, 16:39
    #38306539
Maxim12345678
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: заполнить колонку по условию
due,

сколько таких строк? обязательно использовать пример vba или можно написать длинную формулу?
...
Рейтинг: 0 / 0
21.06.2013, 16:41
    #38306544
due
due
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: заполнить колонку по условию
Да, лучше бы VBA, т.к. его сравнительно легко спарить с Delphi (механизм "Delphi + Excel + макрос" уже отработан), а вот с формулами наверняка запарюсь.
...
Рейтинг: 0 / 0
21.06.2013, 16:42
    #38306547
due
due
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: заполнить колонку по условию
Количество строк - варьируется. Т.е. величина непредсказуемая (в каждом файле - по разному, файлов - без пяти минут миллион).
...
Рейтинг: 0 / 0
21.06.2013, 16:48
    #38306555
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: заполнить колонку по условию
а вот эти условия - они в каком виде хранятся? БД?
...
Рейтинг: 0 / 0
21.06.2013, 17:01
    #38306584
due
due
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: заполнить колонку по условию
Я как раз-таки и потрошу сей файл, чтобы указанные в нём колонки соответствовали эталонным значениям, хранящимся в БД. Только вот нет возможности вытягивать данные из БД, сопоставлять их и заполнять файл. Так было бы проще, да, знаю. Но не судьба.
Зато есть обнадёживающий момент: значения эти строго фиксированные, обновлению/изменению не подлежат ("плавает" лишь их количество), поэтому, если получится сделать то, что я хочу, то в итоге одним ОГРОМНЫМ геморроем станет меньше. С форматированием файла разобрался, с книгами и листами разобрался, осталось заполнить файл значениями (грубо говоря ключами) перед загрузкой в БД. Такая вот печенька.
...
Рейтинг: 0 / 0
21.06.2013, 17:14
    #38306608
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: заполнить колонку по условию
Тогда я не понимаю, в чем загвоздка. Ты не знаешь, как обратиться к конкретной ячейке или что?
...
Рейтинг: 0 / 0
21.06.2013, 17:21
    #38306616
due
due
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: заполнить колонку по условию
Нет, я не знаю, как написать условия этого макроса. Т.е. как должна выглядеть конструкция типа "if ячейка F на текущей строке = '1' then ячейка I на текущей строке = '15'".

Т.е. для знающих проблемы-то на самом деле нет, а я вот с макросами (как и Экселем в целом) на "Вы".
...
Рейтинг: 0 / 0
21.06.2013, 17:28
    #38306630
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: заполнить колонку по условию
Код: vbnet
1.
If Cells(i,7)=5 Then Cells(i,9)=10


Но перед Cells еще должна идти квалификация объекта, а я не знаю, как ты обращаешься к нему из дельфи, на что у тебя есть ссылки.
В общем случае так:
Код: vbnet
1.
Application.Workbook.Worksheet.Cells(i,j)
...
Рейтинг: 0 / 0
21.06.2013, 17:31
    #38306633
due
due
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: заполнить колонку по условию
А если опустить использование Delphi - то как будет выглядеть макрос в полном виде (т.е. если используется голый Excel)?
...
Рейтинг: 0 / 0
21.06.2013, 17:39
    #38306649
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: заполнить колонку по условию
Например
Код: vbnet
1.
ThisWorkbook.Worksheets("Лист2").Cells(1,1)
...
Рейтинг: 0 / 0
21.06.2013, 18:17
    #38306699
due
due
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: заполнить колонку по условию
Спасибо за направление, вроде получилось:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub replace()
Dim ws As Worksheet
Dim i As Integer
For i = 1 To 555
If Cells(i, 7) = 1 Then Cells(i, 9) = 15
If Cells(i, 7) = 11 Then Cells(i, 9) = 18
If Cells(i, 7) = 119 Then Cells(i, 9) = 36
Next
End Sub




Но я не знаю, как мне обозначить вместо "555" последнюю строку. Помогите, пожалуйста.
...
Рейтинг: 0 / 0
21.06.2013, 18:53
    #38306742
due
due
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: заполнить колонку по условию
Всё - с диапазонами разобрался самостоятельно, всем ещё раз огромное спасибо за помощь!!!
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel: заполнить колонку по условию / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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