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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.08.2010, 12:56   #1
mau6
 
Регистрация: 04.06.2008
Сообщений: 6
По умолчанию Cells. Application-defined or object-defined error

Добрый день,

Помогите разобраться. Есть код
Код:
Sub GetValues(f As Variant)
 
Dim last_row As Long, last_col As Long
Dim wb As Workbook
Set wb = Excel.Application.Workbooks.Open(f)
 
For Each sh In wb.Sheets
    With sh
         last_row = .Cells.Find("*", .Range("A1"), xlFormulas, , xlRows, xlPrevious).Row
        last_col = .Cells.Find("*", .Range("A1"), xlFormulas, , xlColumns, xlPrevious).Column
        .Range(.Cells(1, 1), .Cells(last_row, last_column)).Copy
        .Range(.Cells(1, 1), .Cells(last_row, last_column)).PasteSpecial xlPasteValues
    End With
Next
 
wb.Close
End Sub
На строчке .Range(.Cells(1, 1), .Cells(last_row, last_column)).Copy выскакивает Application-defined or object-defined error 1004.
Помогите , пожалуйста, разобраться, почему так происходит?
Спасибо!
mau6 вне форума Ответить с цитированием
Старый 26.08.2010, 13:00   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А так не проще?
Код:
Sub GetValues(ByVal f As String)
    Dim sh As Worksheet
    With Workbooks.Open(f)    ' открываем файл
        For Each sh In .Worksheets    ' перебираем листы
            ' заменяем все формулы значениями
            sh.UsedRange.Value = sh.UsedRange.Value
        Next
        .Close True ' закрываем файл с сохранением
    End With
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 26.08.2010, 13:01   #3
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

а где определяется last_column? или переименуй её в last_col:

.Range(.Cells(1, 1), .Cells(last_row, last_col)).Copy
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 26.08.2010, 13:07   #4
mau6
 
Регистрация: 04.06.2008
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Skif-F Посмотреть сообщение
а где определяется last_column? или переименуй её в last_col:

.Range(.Cells(1, 1), .Cells(last_row, last_col)).Copy
блин, конечно last_col! простая невнимательность стоила мне фиг знает сколько времени, большое спасибо!
mau6 вне форума Ответить с цитированием
Старый 26.08.2010, 13:08   #5
mau6
 
Регистрация: 04.06.2008
Сообщений: 6
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
А так не проще?
Код:
Sub GetValues(ByVal f As String)
    Dim sh As Worksheet
    With Workbooks.Open(f)    ' открываем файл
        For Each sh In .Worksheets    ' перебираем листы
            ' заменяем все формулы значениями
            sh.UsedRange.Value = sh.UsedRange.Value
        Next
        .Close True ' закрываем файл с сохранением
    End With
End Sub
спасибо за предложенный вариант! он гораздо проще.
mau6 вне форума Ответить с цитированием
Старый 26.08.2010, 13:31   #6
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

Используй:
Код:
 Option Explicit    'Все переменные должны быть объявлены
и подобные ошибки будет обнаруживать легче
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[РЕШЕНО] unless a host application is defined (В Delphi 2010 кинул на форму ToolBar, Edit, WebBrowser жму F9 - пишет: "Cannot run project unless a host application is defined...) myxaxa41 Общие вопросы Delphi 4 22.07.2010 11:53
ошибка run-time 1004: application-defined or object-defined error Святой Дьявол Microsoft Office Excel 3 26.06.2010 11:06
Run-time error '1004': Application-defined or object-defined error malor Microsoft Office Excel 3 17.01.2010 17:13
Пересчет user defined функций в Excel 2007 Narishma Microsoft Office Excel 2 23.09.2009 15:21
findObj is not defined man-1982 JavaScript, Ajax 0 09.07.2009 20:49