Вопрос по составлению формулы в Excel #154554


#0 by вопросъ
Мне надо получить формулу ActiveCell.Formula = "=ROUND([R01_3kv05.xls]ОСВ!RC+[R02_3kv05.xls]ОСВ!RC+[R03_3kv05.xls]ОСВ!RC,0)" Где в квадратных скобках - названия файлов, которые считываются с листа и их количество может меняться. После названия файла идет название страницы, оно тоже может меняться. Вопрос в том, как на основании данных получить формулу, подобную формуле выше. Я пытался прописать что-то типа составления строки из частей, но у меня выходит ошибка. Может кто подскажет, как это правильно сделать?
#1 by dk
Добавлю свой вопрос: Как присвоить денежный формат столбцу? Пишу: Лист.Columns("F").NumberFormat = "#,##0.00$"; Вылетает с ошибкой, что нельзя применять это свойство для Range.
#2 by вопросъ
А лист так и называется "лист"? Если на активном листе, то можно прописать ActiveSheet.Range("F:F").NumberFormat = "#,##0.00$" Только лучше это в отдельную тему вынести
#3 by вопросъ
Ну а по вопросу предложения будут?
#4 by VldZ
А в чем вопрос-то? В том, чтобы составить формулу? Встречный вопрос - зачем такой "замут"? Еще вопрос - в чем вообще задача?
#5 by smaharbA
Columns("F").NumberFormatLocal = "$# ##0.00"; Columns("F").NumberFormatLocal = "# ##0.00р.";
#6 by smaharbA
f1="R01_3kv05.xls" f2="R02_3kv05.xls" f3="R03_3kv05.xls" FormulaXls="=ROUND([" & f1 & "]ОСВ!RC+[" & f2 & "]ОСВ!RC+[" & f3 & "]ОСВ!RC,0)"
#7 by вопросъ
Вопрос в том, что в один файл эксела перетягиваются и суммируются значения из других файлов эксела. Пути их прописываются и меняются, также как и названия страниц. Потому надо взять значения из соответствующих ячеек и получить соответствующую формулу.
#8 by вопросъ
А если количество файлов неизвестно? А как к формуле добавить названия страниц, занесенных в переменную?
#9 by ответ 2
Worksheets("Sheet1").Columns("C"). _    NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"
#10 by VldZ
Читаешь изречения? Попадалось такое: "Автоматизируя хаос получишь автоматизированный хаос". ???? Правильно ли я понял суть задачи: есть куча XLS-файлов. Количество их постоянно меняется. Как задаются имена файлов - не понятно. Какие ячейки брать - догадайся сам...  Необходимо: "слепить их вместе"...   Задача супер !!!   Так и хочется сказать: Пищи исчо...
#11 by smaharbA
arr=split("R01_3kv05.xls;R02_3kv05.xls;R03_3kv05.xls",";") FormulaXls="=ROUND([0" for each c in arr  FormulaXls=FormulaXls & "+" & c next FormulaXls=FormulaXls & ",)"
#12 by smaharbA
поправлю... arr=split("R01_3kv05.xls;R02_3kv05.xls;R03_3kv05.xls",";") li="ОСВ" FormulaXls="=ROUND(" for each c in arr FormulaXls=FormulaXls & "[" & c & "]" & li & "!RC+" next FormulaXls=FormulaXls & "0,0)"
#13 by вопросъ
А где там названия страниц указываются и что такое "с"?
#14 by вопросъ
+ 13. Ну с названиями страниц понял, а как понять "for each c in arr", что там означает "с"?
#15 by dk
(2, 5, 9) Та же самая ошибка
#16 by dk
2 Лист    = Книга.ActiveSheet; 2 Это на выбор? или нужно оба свойства присваивать?
#17 by у лю 427
полный мистец...
#18 by smaharbA
c просто переменная в которую в for each получает элемент массива...
#19 by smaharbA
А что самому поправить Лист.Columns("F").NumberFormatLocal = "$# ##0,00"; Лист.Columns("F").NumberFormatLocal = "# ##0,00р."; и вообще не пользуйся активщетом...(это так, совет)
#20 by dk
Всем спасибо, вопрос решен: Вариант1: Лист.Columns("F").Style = "Currency"; Вариант2: Лист.Columns("F").NumberFormat = "# ##0,00р.";
#21 by вопросъ
После этого кода я вставляю Range("c3").Activate ActiveCell.Formula = formulaxls и возникает ошибка во второй строке "application defined or object defined error"
#22 by вопросъ
+ Все, уже разобрался.
#23 by smaharbA
Set fso = CreateObject("scripting.filesystemobject") arr = Split("C:1R01_3kv05.xls;C:1R02_3kv05.xls;C:1R03_3kv05.xls", ";") li = "ОСВ" FormulaXls = "=ROUND(" For Each c In arr c = Replace(c, fso.getfilename(c), "[" & fso.getfilename(c) & "]") FormulaXls = FormulaXls & "'" & c & li & "'!RC+" Next FormulaXls = FormulaXls & "0,0)" Worksheets.Range("a1:a25").FormulaR1C1 = FormulaXls
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С