Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как заставить Excel "проглотить" не верную ссылку на рабочий лсит. / 16 сообщений из 16, страница 1 из 1
20.02.2006, 15:30:15
    #33556078
M.Juanito
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как заставить Excel "проглотить" не верную ссылку на рабочий лсит.
Друзья!
Подскажите, пожалуйста.

пытвюсь в Екселе, посредством VBA, в формулу засунуть ссылку на не существующи(пока) рабочий лист. соотвественно получаю ошибку "1004:Application-defined or object-defined error".
есть способ указать Екселю игнорировать такие вещи? и что ето за способ:)

заранее спасибо
...
Рейтинг: 0 / 0
20.02.2006, 15:38:43
    #33556117
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как заставить Excel "проглотить" не верную ссылку на рабочий лсит.
Для этого можно попробовать перехват ошибок.
Код: plaintext
On Error Resume Next
Указывет, что при возникновении ошибки происходит передача управления на инструкцию, непосредственно следующую за инструкцией, где возникла ошибка.

Можно еще конкретизировать номер ошибки. Для этого читай справку.
...
Рейтинг: 0 / 0
20.02.2006, 15:43:44
    #33556136
M.Juanito
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как заставить Excel "проглотить" не верную ссылку на рабочий лсит.
k-nikeДля этого можно попробовать перехват ошибок.
Указывет, что при возникновении ошибки происходит передача управления на инструкцию, непосредственно следующую за инструкцией, где возникла ошибка.

Можно еще конкретизировать номер ошибки. Для этого читай справку.

спасибо. только ето помогло от "вылетание программы"
но в данном случае не происходит замены на новую ссылку. тоесть ссылка остается той же что и была.
...
Рейтинг: 0 / 0
20.02.2006, 15:53:32
    #33556180
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как заставить Excel "проглотить" не верную ссылку на рабочий лсит.
А пример можно?
...
Рейтинг: 0 / 0
20.02.2006, 16:12:03
    #33556261
M.Juanito
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как заставить Excel "проглотить" не верную ссылку на рабочий лсит.
k-nikeА пример можно?

щас попробую изобразить....



допустим есть ячейка(A1) в ней формула:
='D:\Path\Dir\[ThisFile]2006_O'!A1

"ThisFile" - это чтото типа шаблона, которое заменяется на необходимое имя файла.

так вот.

в скрипте пишу:

c.Formula = Replace(c.Formula, "ThisFile", fFile.Name)


где c ето соответственно будет ячейка A1.

вот на етом он и вылетает.

если править етуже формулу рками то получаем такой вот алерт (см. картинку)
...
Рейтинг: 0 / 0
20.02.2006, 16:23:12
    #33556320
M.Juanito
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как заставить Excel "проглотить" не верную ссылку на рабочий лсит.
может какнидь можно отключить проверку на правильность ссылки или чтото типа того?
...
Рейтинг: 0 / 0
20.02.2006, 16:38:02
    #33556379
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как заставить Excel "проглотить" не верную ссылку на рабочий лсит.
Может тебе поможет.
Код: plaintext
Application.DisplayAlerts = False
...
Рейтинг: 0 / 0
20.02.2006, 16:39:17
    #33556386
M.Juanito
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как заставить Excel "проглотить" не верную ссылку на рабочий лсит.
k-nikeМожет тебе поможет.
Код: plaintext
Application.DisplayAlerts = False


неа. не помогает ни Application.DisplayAlerts = False

ни Application.EnableEvents = False
...
Рейтинг: 0 / 0
20.02.2006, 16:47:21
    #33556413
MX -- ALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как заставить Excel "проглотить" не верную ссылку на рабочий лсит.
M.Juanito k-nikeМожет тебе поможет.
Код: plaintext
Application.DisplayAlerts = False


неа. не помогает ни Application.DisplayAlerts = False

ни Application.EnableEvents = False
в формуле первый знак =
не пиши
потом прибавишь - когда надо
...
Рейтинг: 0 / 0
20.02.2006, 16:48:06
    #33556421
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как заставить Excel "проглотить" не верную ссылку на рабочий лсит.
А ты как "c" (диапазон A1 в данном случае) устанавливаешь? Через Set?
...
Рейтинг: 0 / 0
20.02.2006, 16:51:13
    #33556437
M.Juanito
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как заставить Excel "проглотить" не верную ссылку на рабочий лсит.
k-nikeА ты как "c" (диапазон A1 в данном случае) устанавливаешь? Через Set?

For Each c In Workbooks(fFile.Name).Sheets(CStr(iYear) & "_O").Range("A1:Q64")

вот так :)
...
Рейтинг: 0 / 0
20.02.2006, 16:53:33
    #33556445
M.Juanito
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как заставить Excel "проглотить" не верную ссылку на рабочий лсит.
MX -- ALEX M.Juanito k-nikeМожет тебе поможет.
Код: plaintext
Application.DisplayAlerts = False


неа. не помогает ни Application.DisplayAlerts = False

ни Application.EnableEvents = False
в формуле первый знак =
не пиши
потом прибавишь - когда надо

впринципе мысль! спасибо.. правдо не уверен что подойдет...щас попробую.
...
Рейтинг: 0 / 0
20.02.2006, 17:04:16
    #33556490
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как заставить Excel "проглотить" не верную ссылку на рабочий лсит.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub GetFormula()
    
    Dim c As Range
    Dim fFileName As String
    
    Application.DisplayAlerts = False
    Range("A1").Formula = "='C:\[ThisFile]Лист1'!B1"
    fFileName = "file.xls"
    
    For Each c In ThisWorkbooks.Sheets( 1 ).Range("A1:A2")
        c.Formula = Replace(c.Formula, "ThisFile", fFileName)
    Next
    
End Sub

У меня в таком варианте все прокатывает и не вякает! Excel 2002.
...
Рейтинг: 0 / 0
20.02.2006, 17:31:43
    #33556592
M.Juanito
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как заставить Excel "проглотить" не верную ссылку на рабочий лсит.
k-nike
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub GetFormula()
    
    Dim c As Range
    Dim fFileName As String
    
    Application.DisplayAlerts = False
    Range("A1").Formula = "='C:\[ThisFile]Лист1'!B1"
    fFileName = "file.xls"
    
    For Each c In ThisWorkbooks.Sheets( 1 ).Range("A1:A2")
        c.Formula = Replace(c.Formula, "ThisFile", fFileName)
    Next
    
End Sub

У меня в таком варианте все прокатывает и не вякает! Excel 2002.

ну ты, наверно, даешь ссылку на существующий лист и файл ;)
...
Рейтинг: 0 / 0
20.02.2006, 17:34:33
    #33556603
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как заставить Excel "проглотить" не верную ссылку на рабочий лсит.
M.Juanitoну ты, наверно, даешь ссылку на существующий лист и файл ;)
Нет, в данном случае file.xls несуществующий!!! У тебя какой эксель?
...
Рейтинг: 0 / 0
20.02.2006, 17:44:15
    #33556643
M.Juanito
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как заставить Excel "проглотить" не верную ссылку на рабочий лсит.
k-nike M.Juanitoну ты, наверно, даешь ссылку на существующий лист и файл ;)
Нет, в данном случае file.xls несуществующий!!! У тебя какой эксель?

2002 .... XP который...

лана.. я вроде чето придумал..
спасибо за советы!
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как заставить Excel "проглотить" не верную ссылку на рабочий лсит. / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]