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


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

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

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


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

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


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