#0
by Масянька
День добрый! Порылась в поиске, ничего не нашла. Прошу помощи. Есть excel-файл. Нужно найти в нем определенные данные и заменить на другие. Лист.Cells.Replace(ЧтоИщем,НаЧтоМеняем). Ругается, что данные отсутствуют. Чувствую, что нужно проверять есть ли данные. Лист.Cells.Find(ЧтоИщем). Ругается - плохой тип переменной. Помогите, кто может. Спасибо.
#2
by miki
" Как осуществить поиск / замену значений ячеек на листе //Выбираем область поиска - весь лист ОбластьПоиска = Лист.Cells; // Укажем начало листа НачалоЛиста = Диапазон.Cells(1, 1); // Ищем ячейку с текстом, указанным в переменной ТекстДляПоиска, //укажем откуда искать - с начала листа ОбластьПараметр = ОбластьПоиска.Find(ТекстДляПоиска, НачалоЛиста); // Если нашли, заполняем значением из переменной Значение Если ОбластьПараметр <> неопределено Тогда ОбластьПараметр.Value = Значение; КонецЕсли; Замечание. Текст для замены лучше выделять, например, в угловые скобки, аналогично параметрам макета в 1С. Это улучшит наглядность, визуально отделит от рабочего текста. Текст для поиска в этом случае будет выглядеть так: ТекстДляПоиска = "<ИмяДляЗамены>" " ps. Не проверял
#3
by Dimanchik
там поиск через with делается, так что лучше действительно макрос написать и вызвать уже его из обработки
#5
by miki
Лентяйка... Вот через попытку/исключение: " xl=createobject("Excel.Application"); wb=xl.Workbooks.Open(ВыбФайл); ws=wb.worksheets;//Первый лист where=ws.columns;//Первый столбец what="***";//Строка поиска Попытка r=where.find(what);//Ищем в первом столбце Сообщить(what+" - "+r.offset(0,1).value);//Получаем значение из второго столбца Исключение Сообщить(what+" - не нашли"); КонецПопытки "
#8
by Масянька
Спасибо, получилось. Продолжаем разговор. В первой колонке - код, во второй - наименование. Одинаковые коды и наименование есть. Но почему-то коды меняет все, а наименование меняет только первое. where.offset(0,1).Value = НовоеНаименование; После r=where.find(what). Почему?
#10
by Масянька
Легко Если КорректируемФайл = 1 Тогда Excel = СоздатьОбъект("Excel.Application"); Книга = Excel.Workbooks.Open(ИмяФайлаКорректировки); Лист = Книга.WorkSheets; Колонки = Лист.Columns; КонецЕсли; мНовыйКод = 0; Справ = СоздатьОбъект("Справочник.Номенклатура"); Справ.ПорядокКодов; Справ.ВыбратьЭлементы; Пока Справ.ПолучитьЭлемент = 1 Цикл мТекущийКод = Прав(Справ.Код, 4); Справ.УстановитьНовыйКод(Строка(Формат(мНовыйКод, "Ч8"))); Справ.Записать; Состояние("Обработана запись справочника с кодом - " + мТекущийКод + ". Новый код - " + Справ.Код + "."); Если КорректируемФайл = 1 Тогда мЧтоИщем = мТекущийКод; мНаЧтоМеняем = Строка(Формат(мНовыйКод + 1, "Ч4")); мНаименование = Справ.Наименование; Сообщить("1 - " + мНаЧтоМеняем); Попытка мПоискКод = Колонки.Find(мТекущийКод); мПоискКод.Replace(мТекущийКод, мНаЧтоМеняем); мПоискКод.OffSet(0,1).Value = мНаименование; Исключение КонецПопытки; КонецЕсли; мНовыйКод = мНовыйКод + 1; КонецЦикла; Если КорректируемФайл = 1 Тогда Книга.Save; Excel.DisplayAlerts = 0; Excel.Workbooks.Close; Excel.Quit; КонецЕсли; Предупреждение("Готово."); КонецПроцедуры // ПростаяПеренумерция
#12
by miki
Выдели в Excel несколько строк в столбце и введи значение. В каких ячейках будет введенное значение?
#14
by miki
попробуй не задавать поиск по столбцу (Лист.Columns; ), а ищи по всему листу + FindNext. Сельмаш.
#15
by Масянька
Получилось! :))))))))))))) В Offset надо так писать: мПоискКод.OffSet(мПоискКод ,0,1).Value = мНаименование;
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Поиск нужного значение в листе Excel при загрузке документов из Excel в 1С
- Поиск из 1С в Excel строго соответствующего значения ячейки методами Excel
- Поиск и замена ссылок на объект
- По умолчанию при нажатии Ctrl-F поиск настроен на поиск по текущей колонке
- Поиск и замена в Excel из 1С
- В Проводнике не работает Поиск!?! при нажатии на Поиск процесс зависает, справа как
- v7: 7.7 + поиск и замена значений в Excel
- Поиск и замена задублировавшихся контрагентов в 1С 8.2 УПП
- Что быстрее? Поиск в таблице значений, соответствии или прямой поиск в базе?
- Поиск в УФ как програмно отключить поиск?
- ActiveDocument Excel Поиск и замена
- 1С 8.3. Что быстрее - поиск по коду в справочнике или поиск в ТЗ
В этой группе 1С
- Как наложить фильтр на регистр накопления
- БП2.0: как заполнить НУ в зависимости от БУ
- Как убрать значение из списка выбора перечислеиня?
- Можно ли в БП2.0 отключить контроль остатков? помойму нельзя
- Не все кнопки доступны в командной панели табличной части документа
- ЗУП: пособие за счет ФСС
- Подключение ККМ ПРИМ-08ТК к 1Ске
- Изображение из буфера обмена в Paint
- Передать значение переменной из процедуры в процедуру
- Учет в КА в разрезе заказов.
- Управление торговлей, редакция 11.0 (11.0.7.2) - где основные средства?!
- Управляемая форма - табличный документ
- Медленная отправка задания на печать
- Порушился RAID массив на сервере с SQL базами 1С 8.2 (ошибки базы)
- КД Перенос проводок в ОперацияБух
- Как "связать" Set Retail и УТ11
- Управляемый интерфейс: Интерактивный поиск.
- 8.2 Как в модуле команды документа обратиться к процедуре модуля документа?
- Доплата до прожиточного минимума
- 8.2 а как в тонком клиенте очистить настройки пользователя?