|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.12.2011, 08:46 | #1 |
Пользователь
Регистрация: 14.03.2011
Сообщений: 17
|
"=VLOOKUP"
Суть: из таблицы общих данных выбираем записи по конкретному столбику и сохраняем отдельным файлом.
Ошибка: ActiveCell.FormulaR1C1 = _ "=VLOOKUP(RC[-4],'[_Исходные данные.xls]list1 '!C1:C6,5,0)*RC[-1]" при явнозаданном имени файла все работает нормально, но при замене на DataFile (путь до файла с исходными данными) ActiveCell.FormulaR1C1 = _ "=VLOOKUP(RC[-4],'[&DataFile&]list1 '!C1:C6,5,0)*RC[-1]" при выполнении макроса выскакивает сообщение "Обновить значения &DataFile&" и приходится многократно указывать файл с исходными данными. Помогите исправить Листинг: Sub WorkBook_Open() iTimer! = Timer DataFile = Application.GetOpenFilename Workbooks.Open Filename:=DataFile On Error Resume Next 'обработка данных Set sh = ActiveSheet lLastColl = Cells(1, Columns.Count).End(xlToLeft).Column For i = 8 To lLastColl FName = "" & CurDir & "\" & Cells(1, i) & ".xls" & "" 'имя файла для открытия Columns(i).Select Selection.AutoFilter Field:=i, Criteria1:="<>" 'On Error Resume Next Set sh = ActiveSheet nR = sh.AutoFilter.Range.Rows.Count Range(Cells(3, 1), Cells(nR, i)).Select Selection.Copy ' копируем выделенное Workbooks.Add 'создаем новую книгу Range("A2").Select ' ячейка начала вставки Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False ' вставка только значений без формул Range("A1").Select ActiveCell.FormulaR1C1 = "Код СК-МТР" Range("B1").Select ActiveCell.FormulaR1C1 = "Наименование" Range("C1").Select ActiveCell.FormulaR1C1 = "Е.И." Range("D1").Select ActiveCell.FormulaR1C1 = "Кол-во" Columns(4).Select Selection.NumberFormat = "#,##0.00" Columns(5).Select Selection.NumberFormat = "#,##0.00" Range("E1").Select ActiveCell.FormulaR1C1 = "Сумма" Range("F1").Select ActiveCell.FormulaR1C1 = "Примечание" Range("E3").Select ActiveCell.FormulaR1C1 = _ "=VLOOKUP(RC[-4],'[&DataFile&]list1 '!C1:C6,5,0)*RC[-1]" '[_Исходные данные.xls] lLastRow = Cells(Rows.Count, 1).End(xlUp).Row Selection.AutoFill Destination:=Range(Cells(3, 5), Cells(lLastRow, ActiveCell.Column)) Columns("E").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Cells(lLastRow + 1, ActiveCell.Column).Select ActiveCell.FormulaR1C1 = "=SUM(R" & lLastRow & "C:R3C5)" Range("F1", Cells(Rows.Count, 1).End(xlUp)).Select With Selection .Borders.LineStyle = xlContinuous .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False .EntireColumn.AutoFit End With ActiveWorkbook.SaveAs Filename:= _ FName, _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWorkbook.Close sh.Activate Worksheets(sh.Name).Activate Selection.AutoFilter Field:=i Columns(i).Select Selection.EntireColumn.Hidden = True Next ActiveWorkbook.Close False MsgBox "Время выполнения макроса составило " & _ Timer - iTimer! & " сек.", vbExclamation, "" End Sub |
16.12.2011, 10:09 | #2 |
Пользователь
Регистрация: 14.03.2011
Сообщений: 17
|
Вопрос снят.
"=VLOOKUP(RC[-4],'" & DataFile & " '!C1:C6,5,0)*RC[-1]" |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. | воваава | Помощь студентам | 3 | 01.12.2011 12:50 |
Как обойти "преобразование типа из "string" в "float" невозможно" | lexluter1988 | Помощь студентам | 1 | 07.08.2010 12:23 |
"ОКРВВЕРХ", "ОКР", "ЕСЛИ". Как бы их связать. | Каравай | Microsoft Office Excel | 13 | 17.02.2010 09:53 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |