Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сумма значений с разных листов книги - Страница 3 - Мир MS Excel

Старая форма входа
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Модератор форума: китин, _Boroda_  
Сумма значений с разных листов книги
Hugo Дата: Понедельник, 27.02.2012, 12:31 | Сообщение № 41
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
P.S. - начну с PS - пока писал ответ, куда-то пропал вопрос...

1. В моём примере выше есть такая кнопка, и есть такая форма с чекбоксами.
И массив формируется. Что далее делать с массивом – мне отсюда не видно sad
Т.е. это зависит от Вашего кода/файла/решения.

2. Я выше написал:
В модуле:
Public wshList
Т.е. в модуле нужно объявить публичный массив, а модуль у меня в файле назывался Module1.

Но можно делать и без публичного массива, а передавать его по параметру – например так:

1. в форме (объявляем массив wshList тут)

[vba]
Code
Private Sub CommandButton1_Click()
      Dim arr, s$, i&, wshList
        
      arr = Array("1-2010", "2-2010", "1-2011", "КОРР-ТП")
      For i = 0 To UBound(arr)
          If Me.Controls("CheckBox" & i + 1) Then s = s & arr(i) & "|"
      Next
      s = Left(s, Len(s) - 1)
      wshList = Split(s, "|")

      Выборка_по_работодателю wshList

End Sub
[/vba]

2. Ваш код в модуле ('wshList отключено - его получаем как параметр из формы):

[vba]
Code
Sub Выборка_по_работодателю(wshList)
Dim VR, x, i&, j As Long, bu, z(), per$  ', t()mwshList(),
'wshList = Array("1-2010", "2-2010", "1-2011", "2-2011", "3-2011", "4-2011", "1-2012", "2-2012", "3-2012", "4-2012")
VR = "071-011-" & [N1]
With Sheets("Выборка")
'...
'...
'и т.д.
[/vba]


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеP.S. - начну с PS - пока писал ответ, куда-то пропал вопрос...

1. В моём примере выше есть такая кнопка, и есть такая форма с чекбоксами.
И массив формируется. Что далее делать с массивом – мне отсюда не видно sad
Т.е. это зависит от Вашего кода/файла/решения.

2. Я выше написал:
В модуле:
Public wshList
Т.е. в модуле нужно объявить публичный массив, а модуль у меня в файле назывался Module1.

Но можно делать и без публичного массива, а передавать его по параметру – например так:

1. в форме (объявляем массив wshList тут)

[vba]
Code
Private Sub CommandButton1_Click()
      Dim arr, s$, i&, wshList
        
      arr = Array("1-2010", "2-2010", "1-2011", "КОРР-ТП")
      For i = 0 To UBound(arr)
          If Me.Controls("CheckBox" & i + 1) Then s = s & arr(i) & "|"
      Next
      s = Left(s, Len(s) - 1)
      wshList = Split(s, "|")

      Выборка_по_работодателю wshList

End Sub
[/vba]

2. Ваш код в модуле ('wshList отключено - его получаем как параметр из формы):

[vba]
Code
Sub Выборка_по_работодателю(wshList)
Dim VR, x, i&, j As Long, bu, z(), per$  ', t()mwshList(),
'wshList = Array("1-2010", "2-2010", "1-2011", "2-2011", "3-2011", "4-2011", "1-2012", "2-2012", "3-2012", "4-2012")
VR = "071-011-" & [N1]
With Sheets("Выборка")
'...
'...
'и т.д.
[/vba]

Автор - Hugo
Дата добавления - 27.02.2012 в 12:31
Ed_Vard Дата: Понедельник, 27.02.2012, 12:57 | Сообщение № 42
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация: 0 ±
Замечаний: 0% ±

Спасибо! Я сначала написал - а потом попробовал еще раз разобраться - вроде понял - и поэтому удалил свой вопрос!
Возник другой - это для каждого моего модуля нужно будет отдельную форму делать?
Модули делают разные вещи и объединить их в один не получается - а указание - какие периоды использовать для расчета необходимы!
 
Ответить
СообщениеСпасибо! Я сначала написал - а потом попробовал еще раз разобраться - вроде понял - и поэтому удалил свой вопрос!
Возник другой - это для каждого моего модуля нужно будет отдельную форму делать?
Модули делают разные вещи и объединить их в один не получается - а указание - какие периоды использовать для расчета необходимы!

Автор - Ed_Vard
Дата добавления - 27.02.2012 в 12:57
Hugo Дата: Понедельник, 27.02.2012, 13:17 | Сообщение № 43
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Тогда так, как я выше написал, делать невыгодно. Т.к. тогда форме нужно передавать, кто её вызвал, и соответственно форма туда и должна посылать массив.

Лучше делать по алгоритму, как я в начале написал -
1.объявляем публичный массив.
2.из любого модуля вызываем одну форму, которая формирует этот массив.
3.в любом модуле используем этот массив.

Т.е. так:
в модуле

[vba]
Code
Option Explicit
Public wshList

Sub tt()'это Ваша процедура, использующая массив
Dim i&
UserForm1.Show
For i = 0 To UBound(wshList)
MsgBox wshList(i)
Next
End Sub
[/vba]
в форме

[vba]
Code
Private Sub CommandButton1_Click()
Dim arr, s$, i&
arr = Array("1-2010", "2-2010", "1-2011", "КОРР-ТП")
For i = 0 To UBound(arr)
If Me.Controls("CheckBox" & i + 1) Then s = s & arr(i) & "|"
Next
s = Left(s, Len(s) - 1)
wshList = Split(s, "|")
Me.Hide
End Sub
[/vba]


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеТогда так, как я выше написал, делать невыгодно. Т.к. тогда форме нужно передавать, кто её вызвал, и соответственно форма туда и должна посылать массив.

Лучше делать по алгоритму, как я в начале написал -
1.объявляем публичный массив.
2.из любого модуля вызываем одну форму, которая формирует этот массив.
3.в любом модуле используем этот массив.

Т.е. так:
в модуле

[vba]
Code
Option Explicit
Public wshList

Sub tt()'это Ваша процедура, использующая массив
Dim i&
UserForm1.Show
For i = 0 To UBound(wshList)
MsgBox wshList(i)
Next
End Sub
[/vba]
в форме

[vba]
Code
Private Sub CommandButton1_Click()
Dim arr, s$, i&
arr = Array("1-2010", "2-2010", "1-2011", "КОРР-ТП")
For i = 0 To UBound(arr)
If Me.Controls("CheckBox" & i + 1) Then s = s & arr(i) & "|"
Next
s = Left(s, Len(s) - 1)
wshList = Split(s, "|")
Me.Hide
End Sub
[/vba]

Автор - Hugo
Дата добавления - 27.02.2012 в 13:17
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!