powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / 2 вопроса
8 сообщений из 8, страница 1 из 1
2 вопроса
    #34385138
Balexander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Мне нужно создать listBox из названий листов рабочей книги.
При использовании следующего кода:

Private Sub CommandButton2_Click()
k = 1
i = ActiveWorkbook.Worksheets.Count
k_name = ""
With UserForm2.ListBox1
Do While k <= i
k_name = Sheets(k).Name
If k_name <> "Управление запросами" Then
UserForm2.ListBox1.AddItem k_name
End If
k = k + 1
Loop
End With
UserForm2.Show
End Sub

у меня всегда в нвчале списка появляется пустая строка. Как от нее избавиться?

И второй вопрос.
Есть таблица. Мне нужно найти в ней строку, в которой выполняются три условия одновременно. (требуемые дата, номер и количество). Существует ли какой-нибудь грамотный способ, кроме последовательного просмотра всех строк и сравнивания условий.

Спасибо.
...
Рейтинг: 0 / 0
2 вопроса
    #34385499
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может вначале очистить список Clear?
И при сравнении проверять значение Trim'ом?
...
Рейтинг: 0 / 0
2 вопроса
    #34385578
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Зачем у вас вот это?

With UserForm2.ListBox1
...
End With

2. Вы передаете количество Worksheets в переменную i, а переменной k_name присваиваете имена Sheets, а совсем не Worksheets.

3. Вы квалифицируете i = ActiveWorkbook.Worksheets.Count, а в тоже время не квалифицируете Sheets(k).Name. т.е., в одном случае вам важно, что ActiveWorkbook, а в другом уже почему-то нет.

4. Вы не декларируете ваши преременные.

5. У меня пустая строка не появляется при использовании вашего кода, значит проблема не в нем, хоть он и неказист.

6. Вы вводите слишком много переменных, когда можно обойтись только одной, причем цикл много чего лишнего делает.

7. Вот пример кода, который делает тоже самое, что и ваш:

Private Sub CommandButton2_Click()
Dim objWSht As Worksheet

For Each objWSht In ActiveWorkbook.Worksheets
If objWSht.Name <> "Upravlenie zaprosami" Then
UserForm2.ListBox1.AddItem objWSht.Name
End If
Next objWSht

UserForm2.Show
End Sub

8. Вернее будет посадить заполнение лист бокса в код инициализации формы, а последнюю лишь показывать, а то ваша кнопочка CommandButton2 лезет во внутренние дела вашей формы, что нехорошо. Я подразумеваю, что CommandButton2 сидит не на форме UserForm2, а то зачем последнюю вы явно указывали бы.

Успехов

vladconn
...
Рейтинг: 0 / 0
2 вопроса
    #34385588
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Касательно второго вопроса: да, существует, и не один. Например, использование SQL запросов и ADO. Примеров - море.
...
Рейтинг: 0 / 0
2 вопроса
    #34387574
Balexander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Правда пока не разобрался с пустой строкой.
Опять наткнулся на проблему:
В Private Sub CommandButton2_Click() активного листа присваиваю переменной tname название некоего файла для обработки. Вызываю Userform1. И уже в Forms произвожу обработку информации. Как мне передать значение tname из акивного листа в Forms?
...
Рейтинг: 0 / 0
2 вопроса
    #34387649
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, например так:

1. В кнопке листа:

Private Sub CommandButton1_Click()
UserForm1.FileName = "C:\Temp\MyFile.txt"
UserForm1.Show
End Sub

2. В форме:

Option Explicit
Private mstrFileName As String

Public Property Get FileName() As String
FileName = mstrFileName
End Property

Public Property Let FileName(ByVal pstrNewValue As String)
mstrFileName = pstrNewValue
End Property

Private Sub UserForm_Activate()
Me.Caption = "File name " & Me.FileName
End Sub

Успехов

vladconn
...
Рейтинг: 0 / 0
2 вопроса
    #34388130
Balexander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо!!!!!
...
Рейтинг: 0 / 0
2 вопроса
    #34394136
Balexander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вознила очередная проблема.
Как и где задать значения 2-м переменным (изначально открыт "Лист управления" ), чтобы при нажатии любых кнопок на этом листе и вызова оттуда UserForm1, UserForm2 можно было использовать значения этих переменных. (можно, конечно, хранить эти переменные в ячейках Листа управления, но мне кажется это не правильным)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / 2 вопроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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