Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Debuger(F8) и Run(F5) не дружат! Как мне быть? Добавлено: 04.03.08 13:32  

Автор вопроса:  bowfinger
Возникла такая проблема! В режиме отладки F8 процедура работает нормально, вычисляет значения, переменным присваивает значения. А если ее стандартно через F5 запускать, то процедура вызывается, но ничего не считает, переменные пустые!
Пробывал перезапускать MS Office, перезагружал комп. Не помогает!
Что делать? Это глюки VBA?

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 Nytrogen



Вопросов: 18
Ответов: 186
 Профиль | | #1 Добавлено: 05.03.08 16:59
Вероятно, переменные локальные. После выполнения процедуры они просто стираются.
А вообще на процедуру можно взглянуть?

Ответить

Номер ответа: 2
Автор ответа:
 bowfinger



Вопросов: 13
Ответов: 5
 Профиль | | #2 Добавлено: 11.03.08 09:49
для Nytrogen
Переменные глобальные. Процедуру привожу
--------------------------------------
Public nmdog, gip_str, str As String
Public i, j As Integer

Public Sub ContractName() 'находим наименование договора на сайте contracts
 With ThisWorkbook.Worksheets(2)
  .Activate
  str = "SELECT [Перечень договоров].Договор, [Перечень договоров].ГИП, [Перечень договоров].Название " & _
        "FROM [C:\Разработки\contracts].[Перечень договоров : ВСЕ(правка)] [Перечень договоров] " & _
        "ORDER BY [Перечень договоров].Договор"
  ActiveSheet.QueryTables.Add(Connection:="ODBC;DRIVER=Microsoft Access Driver (*.mdb);Trusted_Connection=Yes;DefaultDir=C:\Разработки;DBQ=C:\Разработки\contracts.mdb" _
                             , Destination:=Range("A1";), Sql:=str).Refresh
  i = 2
  ;Do While .Cells(i, 1) <> ""
   If Left(.Cells(i, 1), InStr(.Cells(i, 1), "#";) - 1) = "3114" Then
    nmdog = .Cells(i, 3)
    gip_str = .Cells(i, 2)
    Exit Do
   End If
   i = i + 1
  Loop
 End With
 WorksheetClear (2)
End Sub

Private Sub WorksheetClear(byt As Byte) 'очистка листа
 ThisWorkbook.Worksheets(byt).Activate
 j = 1
 ;Do While ThisWorkbook.Worksheets(byt).Range("A" & j) <> 0
  j = j + 1
 Loop
 Range("A1:Z" & j).Select
 Range("A1:Z" & j).Clear
End Sub

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам