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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2009, 20:47   #1
gitzzz
 
Регистрация: 02.05.2009
Сообщений: 3
По умолчанию Макрос: ошибка 400

Здравствуйте!
При запуске макроса вылетает окошко с надписью "Ошибка 400". Как "ни крутил" с кодом, так и не понял в чем проблема...Подскажите, пожалуйста, с чем я столкнулся. Вот код макроса. В файле визуализация ошибки.
Код:
Sub Find_Value()
    Dim iFoundRng As Range, iRange As Range, rCell As Range
    Dim lLastCell As Long
    Dim sWB As String

    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Title = "??????? ???? ??? ??????????? ????????"
        .InitialFileName = "*.*"
        If .Show = False Then Exit Sub
        sWB = Dir(.SelectedItems(1), vbDirectory)
        On Error Resume Next
        Workbooks(sWB).Activate
        If Err.Number > 0 Then Workbooks.Open .SelectedItems(1)
        On Error GoTo 0
    End With
Application.ScreenUpdating = False
    
lLastCell = Workbooks.Application.Sheets(1).Columns(4).Cells(Rows.Count, 1).End(xlUp).Row
Set iRange = Workbooks.Application.Sheets(1).Columns(4).Range(Cells(23, 4), Cells(lLastCell, 4))
      
    For Each rCell In iRange
        With ThisWorkbook.Sheets(1)
            Set iFoundRng = .Columns(4).Find(rCell.Value)
            If Not iFoundRng Is Nothing Then
                
              iFoundRng.Offset(0, 2).Value = iFoundRng.Offset(0, 2).Value + rCell.Offset(0, 5).Value
              
            End If
        End With
    Next rCell
ThisWorkbook.Activate
Application.ScreenUpdating = True
End Sub
Изображения
Тип файла: jpg err.JPG (6.3 Кб, 127 просмотров)
gitzzz вне форума Ответить с цитированием
Старый 09.05.2009, 22:18   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Попробуйте так:
Код:
Sub Find_Value()
    Dim iFoundRng As Range, iRange As Range, rCell As Range
    Dim lLastCell As Long
    Dim sWB As String

    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Title = "??????? ???? ??? ??????????? ????????"
        .InitialFileName = "*.*"
        If .Show = False Then Exit Sub
        sWB = Dir(.SelectedItems(1), vbDirectory)
        On Error Resume Next
        Workbooks(sWB).Activate
        If Err.Number > 0 Then Workbooks.Open .SelectedItems(1)
        On Error GoTo 0
    End With
    Application.ScreenUpdating = False

    lLastCell = Sheets(1).Columns(4).Cells(Rows.Count, 1).End(xlUp).Row
    Set iRange = Sheets(1).Range(Sheets(1).Cells(23, 4), Sheets(1).Cells(lLastCell, 4))

    For Each rCell In iRange
        With ThisWorkbook.Sheets(1)
            Set iFoundRng = .Columns(4).Find(rCell.Value)
            If Not iFoundRng Is Nothing Then
                iFoundRng.Offset(0, 2).Value = iFoundRng.Offset(0, 2).Value + rCell.Offset(0, 5).Value
            End If
        End With
    Next rCell
    ThisWorkbook.Activate
End Sub
И то, не факт, что этот код будет работать в Excel 2007 - там отключен используемый Вами метод Application.FileDialog



Чтобы всё работало (в том числе и в Excel 2007), надо использовать другой способ выбора файла - вместо FileDialog применять GetOpenFileName

Последний раз редактировалось EducatedFool; 20.06.2009 в 16:27.
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос постоянно обрабатывает события. При открытии другой книги макрос обрывается. Ples Microsoft Office Excel 8 17.12.2016 18:15
...Ошибка 101 (net::ERR_CONNECTION_RESET): Неизвестная ошибка... infrared Помощь студентам 0 16.04.2009 17:44
Не могу найти макрос, ошибка со шрифтами и поиск! Ilya87 Microsoft Office Excel 15 14.01.2009 05:43
Вопрос по AS/400 + Delphi Legion 4 БД в Delphi 4 22.08.2007 05:59