Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2010, 18:10   #1
metotron
Новичок
Джуниор
 
Регистрация: 24.11.2010
Сообщений: 2
По умолчанию Подстановка формул

Коллеги, добрый день
Есть макрос, который собирает из всех файлов в папке данные на заданный лист (файлы естественно не открывает) с отступом по строкам = 10 (т.е. заполнение листа начинается с ячейки А10 а не с А1. Все таблицы (собираемые из файлов) имеют фиксированное число столбиков
Стоит следующая задача (точнее 2):
1.в некоторых столбцах вместо полученных значений вставить следующую формулу: Пример для столбика "D" строки 15
=если(а15<>0,с15/b15,с15-в16)
Т.е. макрос должен пробегаться по заданным столбикам до момента пока строки не закончатся и выкидывать из ячейки значение и подставлять формулу для расчета (именно формулу, чтобы она потом сама считала,а не результат расчета)
Столбцы заранее определены, формула одинаковая для всех столбцов

2.отчистка пустых строк. Ее я почти решил (благодаря этому форуму) - макрос чистит все строки у которых в столбце А отсутствует значение, кроме самой последней - он ее почему то оставляет
код
Sub Main()
Dim i As Long: Application.ScreenUpdating = False: On Error Resume Next
i = Cells(Rows.Count, 2).End(xlUp).Row
Range("A4:A" & i).SpecialCells(xlCellTypeConstants ).EntireRow.Hidden = True
Range("A4:A" & i).SpecialCells(xlCellTypeVisible). EntireRow.Delete
Rows.Hidden = False: i = Cells(Rows.Count, 2).End(xlUp).Row
End Sub

Заранее спасибо
metotron вне форума Ответить с цитированием
Старый 24.11.2010, 18:41   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

1.
Range("D1:D" & Cells(Rows.Count, 4).End(xlUp).Row).FormulaR1C1 = "=IF(RC[-3]<>0,RC[-1]/RC[-2],RC[-1]-R[1]C[-2])"
может только не с D1 надо начинать, а чуть позже

2.
i = Cells(Rows.Count, 2).End(xlUp).Row
в последней строке во второй колонке, видимо, тоже пусто, поэтому и не попала строка в диапазон.
посмотрите с какой колонки появляются данные ее номер и впишите вместо 2.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 24.11.2010 в 18:58.
IgorGO вне форума Ответить с цитированием
Старый 24.11.2010, 18:58   #3
metotron
Новичок
Джуниор
 
Регистрация: 24.11.2010
Сообщений: 2
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
i = Cells(Rows.Count, 2).End(xlUp).Row
в последней строке во второй колонке, видимо, тоже пусто, поэтому и не попала строка в диапазон.
посмотрите с какой колонки появляются данные ее номер и впишите вместо 2.
да точно, вы правы...блин что-то я сам не заметил балбес

осталась первая задача с формулой
metotron вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена подстановка Sokil Microsoft Office Excel 29 07.02.2012 17:36
Подстановка Ael Microsoft Office Access 3 04.11.2010 19:17
Подстановка в многочлен pasha92 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 28.05.2010 20:20
DBGrid - подстановка VladimirAleks Общие вопросы Delphi 7 22.10.2009 17:49
Сравнение и подстановка tsasha1 Microsoft Office Excel 2 08.04.2008 14:47