Vba excel find ошибка

 

Название в первом списке может быть сокращено, во второй же оно написано полностью.  
(Т.е. в первой Бондар во второй полностью Бондаренко)  

  Я через Find ищу каждое слово во втором списке и в соседний столбец вывожу полное название.  

  У меня почему-то как-то одни и те же строчки то обрабатываются, то выдают ошибки.  
Подскажите пожалуйста, что не так?  

  Для примера можно запустить Макросс1() (он выдаст ошибку на третьей строке), а потом запустить Макросс2()  — он обработает третью строку и запнется на седьмой)    
Эти макросы идентичны, кроме первой строки.

 

*Первая строчка не вставилась*  

  «Добрый день, помогите пожалуйста решить задачку:  
У меня есть два списка на разных листах.»

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

Не верно расположен блок обработки ошибок:  

  Sub Макросс1()  
Range(Cells(1, 1), Cells(10, 1)).Select  
On Error GoTo Errr  
For Each cell In Selection  
iPersona = cell.Value  
cell.Offset(0, 1) = «»  

  rr = Sheets(«Контакты»).Columns(«D:D»).Find(What:=iPersona).Row  
iPersonFull = Sheets(«Контакты»).Columns(«D:D»).Rows(rr)  
cell.Offset(0, 1) = iPersonFull  
cell.Offset(0, 1).Font.ColorIndex = 1  

  Next  

  Errr: ‘обработка ошибки  
If cell.Offset(0, 1) = «» Then  
cell.Offset(0, 1) = iPersona  
cell.Offset(0, 1).Font.ColorIndex = 3  
End If  
End Sub

Учимся сами и помогаем другим…

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

ber$erk, Ваш вариант дальше второй строки не идёт :-)

 

А как же быть? В таком случае при первой ошибуке он выходит из цикла и получается, что обработались только значения до первой попавшейся ошибки, а потом выход из цикла и конец. Весь оставшийся список не обработался.

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

Другой_, попробуйте искать частичное совпадение — параметр lookAt:=xlPart  
Но возникнет проблема: что делать, если таковых будет несколько?

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

{quote}{login=Юрий М}{date=27.07.2012 11:39}{thema=}{post}ber$erk, Ваш вариант дальше второй строки не идёт :-){/post}{/quote}  
Это потому что я не проверял алгоритм, а объяснил причину возникновения ошибки.  
Раз на то пошло, то правильный вариант такой:  

  Sub Макросс1()  
Range(Cells(1, 1), Cells(10, 1)).Select  
Dim searchCell As Range  

  On Error Resume Next  
For Each cell In Selection  
iPersona = cell.Value  
cell.Offset(0, 1) = «»  

    Set searchCell = Sheets(«Контакты»).Columns(«D:D»).Find(What:=iPersona)  
If searchCell Is Nothing Then  
   If cell.Offset(0, 1) = «» Then  
   cell.Offset(0, 1) = iPersona  
   cell.Offset(0, 1).Font.ColorIndex = 3  
   End If  
Else  
iPersonFull = Sheets(«Контакты»).Columns(«D:D»).Rows(rr)  
cell.Offset(0, 1) = iPersonFull  
cell.Offset(0, 1).Font.ColorIndex = 1  
End If  
Next  

      End Sub

Учимся сами и помогаем другим…

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

Попробуйте такой вариант:  
Sub Шмакрос3()  
Dim Rng As Range, TextToFind As String  
   With Sheets(«Контакты»)  
       For i = 1 To 55  
           TextToFind = Cells(i, 1)  
           Set Rng = .Columns(4).Find(what:=TextToFind, LookIn:=xlFormulas, lookAt:=xlPart)  
           If Not Rng Is Nothing Then  
               Cells(i, 2) = Rng.Value  
           Else  
               Cells(i, 2) = «Нет такого»  
           End If  
       Next  
   End With  
End Sub

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

поторопился:  
строчку заменить надо  
iPersonFull = Sheets(«Контакты»).Columns(«D:D»).Rows(searchCell.Row)

Учимся сами и помогаем другим…

 

Спасибо)  
Правда, пока осталось не понятно, почему в предыдущий раз то обрабатывало строчку нормально, но нет.. Нельзя что-ли обработку ошибки в цикле использовать..  

  А можно ещё узнать, как я могу узнать номер строки в которой нашелся результат поиска? Например, если, я захочу взять результат из соседнего столбца от найденного значения.  
Вот так не хочет выдавать rr = searchCell.Rows

 

*ага, понял про rr = searchCell.Row

 

А всё-таки, почему нельзя блок обработки ошибки внутрь вставлять, что таоке присходило, что ошибка вылезала?

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

Мой вариант не устраивает? И никаких ошибок, требующих дальнейшей обработки :-)

 

Юрий, я пробовал, у меня то же самое, ошибка вылезает.  
(А насчет дублей в данном случае эта проблема не стоит.)  

  Sub Макросс1()  
Range(Cells(1, 1), Cells(10, 1)).Select  

  For Each cell In Selection  
iPersona = cell.Value  
cell.Offset(0, 1) = «»  

  On Error GoTo Errr  
rr = Sheets(«Контакты»).Columns(«D:D»).Find(What:=iPersona, lookAt:=xlPart).Row  
iPersonFull = Sheets(«Контакты»).Columns(«D:D»).Rows(rr)  
cell.Offset(0, 1) = iPersonFull  
cell.Offset(0, 1).Font.ColorIndex = 1  

  Errr: ‘обработка ошибки  
If cell.Offset(0, 1) = «» Then  
cell.Offset(0, 1) = iPersona  
cell.Offset(0, 1).Font.ColorIndex = 3  
End If  

    Next  

  End Sub

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

{quote}{login=Другой_}{date=27.07.2012 12:49}{thema=}{post}Юрий, я пробовал, у меня то же самое, ошибка вылезает.{/post}{/quote}У меня никаких ошибок не возникает. См. файл.  
Что за ошибка у Вас?

 

Юрий, вашим вариантом у меня никаких ошибок не возникает. Скорее всего я им воспользуюсь, он очень лаконичный.  

  Но всё-таки хотелось бы мою ошибку узнать, что бы не повторять в будущем.  
У меня возникает ошибка «Run-time error 91    
Object variable or With block variable not set» (прикрепил файл Макрос1)  

  Что такое происходит, что вылезает ошибка?

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

rr = searchCell.Row    
Вы пытаетесь переменной присвоить номер стройки, где найдено значение. А значение НЕ НАЙДЕНО. Какая это может быть строка?

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

{quote}{login=Другой_}{date=27.07.2012 01:51}{thema=}{post}Юрий, вашим вариантом у меня никаких ошибок не возникает. {/post}{/quote}А перед этим писали: «Юрий, я пробовал, у меня то же самое, ошибка вылезает.» :-) Соберитесь с мыслями :)

 

Другой_

Гость

#19

27.07.2012 13:58:07

Юрий, спасибо.  

  Последний вопросик)  
А разве On Error GoTo Errr не должен направить на метку Errr ?  
Ведь он для этого тут и стоит же..

I’m looking for user ID #s from a list. However some users no longer exist. I’ve tried the test method, the on error go to method, and if err.number<> 0 then method. I still receive the Run-time error '91': object variable or with block variable not set. The number does not exist on the the list. Below is my code with a couple of fruitless attempts

On Error GoTo errorLn

If Err.Number <> 0 Then
 GoTo errorLn
End If
Cells.Find(What:=uSSO, After:=ActiveCell, LookIn:=xlFormulas, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Select

What other options are there? Or am I misplacing the lines of «error»? I have tried it before and after the «cells.Find…»

Community's user avatar

asked Aug 15, 2012 at 16:03

orangehairbandit's user avatar

You will want to do something different than have message boxes, presumably.

Dim myCell As Range

Set myCell = Cells.Find(What:=uSSO, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)

If (Not myCell Is Nothing) Then
    MsgBox "something!"

Else
    MsgBox "nothing"
End If

answered Aug 15, 2012 at 16:12

enderland's user avatar

enderlandenderland

13.7k17 gold badges100 silver badges152 bronze badges

I believe you’ll need to restructure it just a little bit. It is not the best practice to handle errors with On Error Resume Next, but you could try this:

On Error Resume Next
Cells.Find(What:=uSSO, After:=ActiveCell, LookIn:=xlFormulas, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Select

If Err.Number <> 0 Then
 '''Do your error stuff'''
 GoTo errorLn
Else
    Err.Clear
End If

Does that work for your situation?

Source: http://www.mrexcel.com/forum/excel-questions/143988-check-if-value-exists-visual-basic-applications-array.html

answered Aug 15, 2012 at 16:08

RocketDonkey's user avatar

2

Try this

Sub Sample1()
    Dim oSht As Worksheet
    Dim uSSO As String
    Dim aCell As Range
    
    On Error GoTo Whoa
    
    '~~> Change this to the relevant sheet
    Set oSht = Sheets("Sheet1")
    
    '~~> Set User ID here
    uSSO = "User ID"
    
    Set aCell = oSht.Cells.Find(What:=uSSO, LookIn:=xlFormulas, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False)
    
    '~~> Check if found or not
    If Not aCell Is Nothing Then
        MsgBox "Value Found in Cell " & aCell.Address
    Else
        MsgBox "Value Not found"
    End If
    
    Exit Sub
Whoa:
    MsgBox Err.Description
End Sub

I also would recommend reading this link where I have covered .Find and .FindNext

Topic: .Find and .FindNext In Excel VBA

Link: https://web.archive.org/web/20160316214709/https://siddharthrout.com/2011/07/14/find-and-findnext-in-excel-vba/

Kolappan N's user avatar

Kolappan N

3,5012 gold badges35 silver badges41 bronze badges

answered Aug 15, 2012 at 16:09

Siddharth Rout's user avatar

Siddharth RoutSiddharth Rout

146k17 gold badges206 silver badges250 bronze badges

1

Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2019 for Mac Excel 2016 Excel 2016 for Mac Excel 2013 Excel 2010 Excel 2007 More…Less

This topic provides help for the most common scenarios for the #VALUE! error in the FIND/FINDB and SEARCH/SEARCHB functions.

A few things to know about FIND and SEARCH functions

  • The FIND and SEARCH functions are very similar. They both work in the same way — locate a character or a text string in another text string. The difference between these two functions is that FIND is case-sensitive, and SEARCH is not case-sensitive. So if you don’t want to match case in a text string, use SEARCH.

  • If you want a function that returns the string based on the character number you specify, use the MID function along with FIND. You can find information and examples of using MID and FIND combinations in the FIND help topic.

  • The syntax of these functions is the same, find_text, within_text, [start_num]). In simple English, the syntax means What do you want to find?, Where do you want to find it?, What position do you want to start from?

Problem: the value in the find_text argument cannot be found in the within_text string

If the function cannot find the text to be found in the specified text string, it will throw a #VALUE! error.

For example, a function like:

  • =FIND(«gloves»,»Gloves (Youth)»,1)

Will throw the #VALUE! error, because there is no matching “gloves” in the string, but there is “Gloves”. Remember that FIND is case-sensitive, so make sure the value in find_text has an exact match in the string in the within_text argument.

However, this SEARCH function will return a value of 1, since it’s not case-sensitive:

  • =SEARCH(«gloves»,»Gloves (Youth)»,1)

Solution: Correct the syntax as necessary.

Problem: The start_num argument is set to zero (0)

The start_num argument is an optional argument, and if you omit it, the default value will be assumed to be 1. However, if the argument is present in the syntax and the value is set to 0, you will see the #VALUE! error.

Solution: Remove the start_num argument if it is not required, or set it to the correct appropriate value.

Problem: The start_num argument is greater than the within_text argument

For example, the function:

  • =FIND(“s”,”Functions and formulas”,25)

Looks for “s” in the “Functions and formulas” string (within_text) starting at the 25th character (start_num), but returns a #VALUE! error because there are only 22 characters in the string.

Tip: To find the total number of characters in a text string, use the LEN function

Solution: Correct the starting number as necessary.

Need more help?

You can always ask an expert in the Excel Tech Community or get support in the Answers community.

See Also

Correct a #VALUE! error

FIND/FINDB functions

SEARCH/SEARCHB FUNCTIONS

Overview of formulas in Excel

How to avoid broken formulas

Detect errors in formulas

All Excel functions (alphabetical)

All Excel functions (by category)

Need more help?

  • Remove From My Forums
  • Question

  • I am writing a excel vba for some find and merge function, but the .Find method returns «Type mismatch» error. Parts of the code is below. Strangely when I tested it (immediate windows) using Range(«a:a»), it works.

    Dim FAnumRow As Variant
    Dim LAnumRow As Variant

    …..

        Range(«3:3»).Insert
        Range(«a3»).Select
        LActNo = Range(«a4»).End(xlDown).Value
        For Anum = 1 To LActNo
            FAnumRow = Range(Cells(4, 1), Cells(ActiveSheet.Rows.Count, 1).End(xlUp)).Find(What:=Anum, _
                                                               
    After:=Range(«a3»), _
                                                               
    LookIn:=xlFormulas, _
                                                               
    LookAt:=xlWhole, _
                                                               
    SearchOrder:=xlByRows, _
                                                               
    SearchDirection:=xlNext, _
                                                               
    MatchCase:=False).Row
            LAnumRow = Range(Cells(4, 1), Cells(ActiveSheet.Rows.Count, 1).End(xlUp)).Find(What:=Anum, _
                                                               
    After:=Range(«a3»), _
                                                               
    LookIn:=xlFormulas, _
                                                               
    LookAt:=xlWhole, _
                                                               
    SearchOrder:=xlByRows, _
                                                               
    SearchDirection:=xlPrevious, _
                                                               
    MatchCase:=False).Row

    …………….

     Can anybody advise me what is the problem and how to solve? Thanks a lot in advance!

    <input id=»819209f8-1f84-4663-9f1d-f683cd21d7fd_attachments» type=»hidden» />

Answers

  • Pls check the following:

    1.Ensure that data starts with A3.

    2.The After Argument of first method is not required.Because if not specified the first cell of range is taken.For second Find method use the range reference returned by First Find.

    3.Use some error tracking if the find method fails.

    Pls try the following

    Sub FindtheLoosds()

        Dim FAnumRow As Long, AnumRow As Long, LActNo As Long
        Dim FirstRange As Range, SecondRange As Range

       
        Range(«3:3»).Insert
        LActNo = Range(«a4»).End(xlDown).Value

       
        For anum = 1 To LActNo

               
          On Error Resume Next
          Set FirstRange = Range(«a4»)
          Set FirstRange = Range(«a4», Cells(ActiveSheet.Rows.Count, 1).End(xlUp)).Find(What:=anum, _
                LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
                SearchDirection:=xlNext, MatchCase:=False)

       
          On Error GoTo 0

         
          FAnumRow = FirstRange.Row

              
         On Error Resume Next
         Set SecondRange = Range(«a4»)
         Set SecondRange = Range(«a4», Cells(ActiveSheet.Rows.Count, 1).End(xlUp)).Find(What:=anum, _
               after:=FirstRange, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
                SearchDirection:=xlNext, MatchCase:=False)
          On Error GoTo 0

           
          LAnumRow = SecondRange.Row

               
        Next anum

    End Sub

    • Marked as answer by

      Wednesday, October 5, 2011 10:04 AM

  • With VBA code you usally check for nothing to see if the find method actual returned state.  Here are some of my pointers

    1) Check for nothing

    Set c = Columns(«A»).find(what:=»abc»,lookin:=xlvalues, lookat:=xlwhole)

    if not c is nothing then

       ‘your code here.

    end if

    2) Don’t use «AFTER» unless you need to.  the default will start at the 1st cell.  Puting «A3»  for after the code won’t check A3 until the end of the find.  the find method when it gets to the last cell wraps back to the first cell. 
    If you really want to use AFTER then make the AFTER the last cell in the range.


    jdweng

    • Marked as answer by
      Calvin_Gao
      Wednesday, October 5, 2011 10:04 AM

Выдает ошибку при обработки поиска ячейки

leskris

Дата: Пятница, 23.01.2015, 06:57 |
Сообщение № 1

Группа: Пользователи

Ранг: Участник

Сообщений: 90


Репутация:

0

±

Замечаний:
0% ±


Excel 2016 (Office 365)

[vba]

Код

Private Sub CommandButton_Login_Click()
Worksheets(7).Visible = True
Worksheets(7).Range(«user»).find(UserForm2.TextBox_Login.Value, LookAt:=xlWhole).Select

If TextBox_Login.Value = ActiveCell.Value Then
If TextBox_Password.Value = Cells(ActiveCell.Row, ActiveCell.Column + 1).Value Then
UserForm1.TextBox_user_info1.Value = UserForm2.TextBox_Login.Value
UserForm1.TextBox_date_info1.Value = Date
UserForm1.Show
Else
MsgBox («Пароль не верный»)
Worksheets(7).Range(«A1»).Select
End If
Else
MsgBox («ТАкого пользователя не существует»)
End If
TextBox_Password.Value = «»
End Sub

[/vba]
————————
Вообщем есть файл в котором я планирую хранить данные логинов и паролей.
Форма 2 открывает лист и ищет данные если они совпадают, то запускает форму 1.
Если пользователь есть в файле то программа работает нормально, если пароль не соотвествуетсоответсвует, тоже все нормально, но если пользователя в файле нет, программа выдает ошибку на строке 3. Честно я уже замучался не понимаю в чем проблема. Подскажите пожалуйста что не так в этом коде.
В ВБА новичек, формы использую первый раз.
[moder]В прошлой Вашей теме Вас уже отсылали к Правилам форума. Вы, видимо, прочитать не удосужились. А зря. Ловите замечание. Код тегами за Вас оформил.

 

Ответить

keeper

Дата: Пятница, 23.01.2015, 10:34 |
Сообщение № 2

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

1

±

Замечаний:
0% ±


Excel 2010

Я делал так
[vba]

Код

   If Worksheets(«Лист1»).Cells.Find(«Что ищем») Is Nothing Then
         MsgBox «Указанного текста нет на листе!»
      Exit Sub
   End If

[/vba]

 

Ответить

_Boroda_

Дата: Пятница, 23.01.2015, 10:54 |
Сообщение № 3

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Можно вместо строки 3 написать так:
[vba]

Код

    On Error Resume Next
      Worksheets(7).Range(«user»).Find(UserForm2.TextBox_Login.Value, LookAt:=xlWhole).Select
      If Err.Number <> 0 Then Exit Sub
      On Error GoTo 0

[/vba]


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

leskris

Дата: Пятница, 23.01.2015, 12:10 |
Сообщение № 4

Группа: Пользователи

Ранг: Участник

Сообщений: 90


Репутация:

0

±

Замечаний:
0% ±


Excel 2016 (Office 365)

Второй вариант работает, первый все-равно выдает ошибку, спасибо за помощь, нигде не мог найти инфу про прерывание ошибки почему-то.
А можете подсказать причину, по которой моя строка не работает??? я вот думаю может даже когда ошибку не выдает, то код тоже работает не совсем корректно, но я не замечаю этого.
—————-
(Сори за офтоп: насчет оформления кода спецтегами, я просто не знаю этих тегов.. и прошлое замечание было по поводу того что я код выложил в виде скрина, сейчас же я просто выложил код..)

Сообщение отредактировал leskrisПятница, 23.01.2015, 12:18

 

Ответить

SkyPro

Дата: Пятница, 23.01.2015, 12:36 |
Сообщение № 5

Группа: Друзья

Ранг: Старожил

Сообщений: 1206


Репутация:

255

±

Замечаний:
0% ±


2010

А разве метод Find работает на не активном листе?


skypro1111@gmail.com

 

Ответить

leskris

Дата: Пятница, 23.01.2015, 12:41 |
Сообщение № 6

Группа: Пользователи

Ранг: Участник

Сообщений: 90


Репутация:

0

±

Замечаний:
0% ±


Excel 2016 (Office 365)

[vba]

Код

Worksheets(7).Visible = True
Worksheets(7).Range(«user»).find(UserForm2.TextBox_Login.Value, LookAt:=xlWhole).Select

[/vba]
а это разве не активирует лист??

Сообщение отредактировал leskrisПятница, 23.01.2015, 12:42

 

Ответить

RAN

Дата: Пятница, 23.01.2015, 12:51 |
Сообщение № 7

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Нет


Быть или не быть, вот в чем загвоздка!

 

Ответить

RAN

Дата: Пятница, 23.01.2015, 12:55 |
Сообщение № 8

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

А разве метод Find работает на не активном листе?

Работает.


Быть или не быть, вот в чем загвоздка!

 

Ответить

leskris

Дата: Пятница, 23.01.2015, 13:54 |
Сообщение № 9

Группа: Пользователи

Ранг: Участник

Сообщений: 90


Репутация:

0

±

Замечаний:
0% ±


Excel 2016 (Office 365)

Так все же кто-то знает почему та строка не работает так как я хочу?

 

Ответить

tsap

Дата: Воскресенье, 25.01.2015, 00:36 |
Сообщение № 10

Группа: Проверенные

Ранг: Участник

Сообщений: 60


Репутация:

6

±

Замечаний:
0% ±


2013

leskris, Вы не указали что за ошибка у Вас появляется, но могу предположить, что основные причины таковы:

1) Вы не можете выполнить метод Select на НЕ активном листе. Решение — произведите активацию листа перед выбором ячейки, или же просто получите значение ячейки в переменную и не выбирайте ее
2) Лист Worksheets(7) это может быть и не тот лист, что надо на самом деле. Решение — проверьте чтобы не произошло никакой путаницы после скрытия листов.

И плюс к вышеизложенному, я бы на Вашем месте предпочел бы присвоить значение поля TextBox_Login переменной и сразу бы выгрузил форму. Как то типа этого:
[vba]

Код

       Dim login$
       login = UserForm2.TextBox_Login.Value
       Unload UserForm2

                 With Worksheets(7)
           .Visible = True
           .Activate
           .Range(«user»).Find(login, LookAt:=xlWhole).Select
       End With

[/vba]


Сообщение отредактировал tsapВоскресенье, 25.01.2015, 02:58

 

Ответить

keeper

Дата: Воскресенье, 25.01.2015, 22:08 |
Сообщение № 11

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

1

±

Замечаний:
0% ±


Excel 2010

Правильно. Мой метод не работает на Excel 2007. Сразу не посмотрел, что у вас 2007. У меня с 2007-м excel тоже проблемы были. Поставил все обновки и все работает.

 

Ответить

leskris

Дата: Вторник, 27.01.2015, 03:52 |
Сообщение № 12

Группа: Пользователи

Ранг: Участник

Сообщений: 90


Репутация:

0

±

Замечаний:
0% ±


Excel 2016 (Office 365)

1) Вы не можете выполнить метод Select на НЕ активном листе. Решение — произведите активацию листа перед выбором ячейки, или же просто получите значение ячейки в переменную и не выбирайте ее
2) Лист Worksheets(7) это может быть и не тот лист, что надо на самом деле. Решение — проверьте чтобы не произошло никакой путаницы после скрытия листов.

Странно почему тогда программа не работала только если логина вообще не было, в остальных случаях все работало, думаю проблема в другом…

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Vba excel find если не найдено
  • Vba excel find what method
  • Vba excel find string in string
  • Vba excel find in sheet
  • Vba excel find format