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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2009, 18:40   #1
mephist
Форумчанин
 
Регистрация: 01.05.2009
Сообщений: 200
По умолчанию Сумма ссылок

Нужно через макрос присвоить ячейке формулу, которая представляет из себя сумму трех ссылок. Все три ссылки из разных книг. Я написал вот такое (это естественно не работает)
Код:
    
    Filename = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, "mc.xlsx")
    With Workbooks.Open(Filename, , , , , , True)
    Filename = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, "nc.xlsx")
    With Workbooks.Open(Filename, , True)
    Filename = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, "cc.xlsx")
    With Workbooks.Open(Filename, , True)
    Filename = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, "sc.xlsx")
    With Workbooks.Open(Filename, , True)
    Workbooks("mc.xlsx").Sheets("8.1_").Cells(9, 10).Formula = "=" & Workbooks("nc.xlsx").Sheets("8.1_").Cells(9, 10).Address(, , , True) "+"&Workbooks("cc.xlsx").Sheets("8.1_").Cells(9, 10).Address(, , , True) "+" &Workbooks("sc.xlsx").Sheets("8.1_").Cells(9, 10).Address(, , , True)
    .Close False: End With: .Close False: End With: .Close False: End With: .Close True: End With
VBA ругается на знаки выделенные красным. Как можно подправить этот код или вообще написать другой.
mephist вне форума Ответить с цитированием
Старый 23.07.2009, 19:04   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Workbooks("mc.xlsx").Sheets("8.1_") .Cells(9, 10).Formula = "=" & Workbooks("nc.xlsx").Sheets("8.1_") .Cells(9, 10).Address(, , , True) & "+" & Workbooks("cc.xlsx").Sheets("8.1_") .Cells(9, 10).Address(, , , True) & "+" & Workbooks("sc.xlsx").Sheets("8.1_") .Cells(9, 10).Address(, , , True)
.Close False: End With: .Close False: End With: .Close False: End With: .Close True: End With
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 23.07.2009, 22:12   #3
mephist
Форумчанин
 
Регистрация: 01.05.2009
Сообщений: 200
По умолчанию

Спасибо большое! То, что нужно! Супер!
mephist вне форума Ответить с цитированием
Старый 24.07.2009, 11:55   #4
mephist
Форумчанин
 
Регистрация: 01.05.2009
Сообщений: 200
По умолчанию

Хотя код не работает
Код:
Sub Blank_fill()
    Dim Sh As Worksheet
    Application.Calculation = xlCalculationManual: Application.ScreenUpdating = False: On Error Resume Next
    For Each Sh In Sheets
        Sh.Unprotect
    Next
    Filename = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, asCenterNames(2))
    With Workbooks.Open(Filename, , , , , , True)
        Filename = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, asCenterNames(3))
        With Workbooks.Open(Filename, , , , , , True)
            Filename = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, asCenterNames(4))
            With Workbooks.Open(Filename, , , , , , True)
                ThisWorkbook.Sheets("8.1").Cells(9, 10).Formula = "=" & Workbooks("nc.xlsx").Sheets("8.1").Cells(9, 10).Address(, , , True) & "+" & Workbooks("cc.xlsx").Sheets("8.1").Cells(9, 10).Address(, , , True) & "+" & Workbooks("cc.xlsx").Sheets("8.1").Cells(9, 10).Address(, , , True)
    .Close True: End With: .Close True: End With: .Close True: End With
    Application.Calculation = xlCalculationAutomatic
End Sub
Я что-то не так делаю??? Книги открываются, а вот значения ячейки J9 не меняется. Что не так?
mephist вне форума Ответить с цитированием
Старый 24.07.2009, 15:44   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Что не так?
Уберите On Error Resume Next, и увидите, в чём проблема...

Вообще, я не могу без слёз смотреть на этот код - на то, что когда-то было вполне рабочим макросом.
Зачем было делать вложенные With Workbooks.Open(Filename, , , , , , True)???
Зачем открывать книги, если надо в ячейку только записать формулу?
Вы же знаете имена файлов и листов - сформируйте программно формулу на основании этих данных - макрос сократится в 3 раза, и не понадобится открывать/закрывать все эти файлы...
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переход от ссылок к значениям! mephist Microsoft Office Excel 5 10.07.2009 16:01
сохранение ссылок в combobox Denisko Помощь студентам 16 02.06.2009 18:01
Вытаскивание ссылок из текста jocry Общие вопросы Delphi 2 10.02.2009 16:51
форматы представления ссылок ТАНя K Microsoft Office Excel 1 16.10.2007 08:14