|
|
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
Excel 2003. Мне хотелось бы передать в процедуру, находящуюся в общем модуле, имя листа; а еще лучше - сам лист в качестве объекта. Вот только что-то не срабатывает. Объект в процедуре не работает. Прошу дать простой пример, как это надо делать. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2009, 10:06 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
как пробовали? и что не получается? имя листа можно получить так: Код: plaintext 1. или, если лист активный, то: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2009, 10:55 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
AlexLevПрошу дать простой пример, как это надо делать. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2009, 11:00 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
Korcar, Хотелось бы типа: Sub Процедура1() Dim ЛистИтоги As Worksheet Set ЛистИтоги = Worksheets("Лист2") Процедура2 ЛистИтоги End Sub Public Sub Процедура2(ЛистИтоги) ЛистИтоги.Rows(1).Select End Sub Но не срабатывае даже: Sub Процедура1() Процедура2 "Лист2" End Sub Public Sub Процедура2(ИмяЛиста) Dim x As Workbook Set x = Workbooks(ИмяЛиста) End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2009, 11:13 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
qwrqwr, Благодарю за наглядный пример. Но в моем случае, - надо передать в вызываемую процедуру еще и другие параметры, к примеру номер строки. И вот тут я не понимаю, как это можно в вызове "прикрутить". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2009, 11:41 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
Листы можно обзывать: Код: plaintext 1. 2. Код: plaintext Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2009, 11:43 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
PlanBЛисты можно обзывать: Ну, это понятно. Но хотелось бы просто передать сразу объект, чтобы его не воссоздавать в процедуре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2009, 11:54 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
AlexLevqwrqwr, Благодарю за наглядный пример. Но в моем случае, - надо передать в вызываемую процедуру еще и другие параметры, к примеру номер строкину так и передайте. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2009, 11:59 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
Прошу объяснить, почему в следующем примере, не срабатывает команда ".Rows(1).Select"? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2009, 08:43 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
AlexLevПрошу объяснить, почему в следующем примере, не срабатывает команда ".Rows(1).Select"?Потому что селект работает только на активном листе. Вот так работает: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2009, 09:50 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
Добрый день! Не подскажете. как написать функцию, возвращающую имя листа? Необходимо для того, чтобы использовать во вложенной функции: например SUM. Написал кое-что, но выдает ошибку ссылки! Function SheetName(sName As Range) As String Dim i As Integer For i = 1 To ActiveWorkbook.Sheets.Count If Sheets(i).Name = sName Then SheetName = ActiveWorkbook.Sheets(i).Name End If Next i End Function =SUM(SheetName(B1)!A1:A5;SheetName(B2)!A1:A5), где B1, B2 - ячейки главного листа, указывающие какие листы использовать в расчёте. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2009, 15:32 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
Function SheetName(sName As String ) As String ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2009, 15:38 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
basil12345 =SUM(SheetName(B1)!A1:A5;SheetName(B2)!A1:A5), где B1, B2 - ячейки главного листа, указывающие какие листы использовать в расчёте. =SUM(INDIRECT(B1 & "!A1:A5");INDIRECT(B2 & "!A1:A5")) PS: VBA-функция здесь не нужна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2009, 15:48 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
Спасибо! Помогло! Единственое, что функции INDIRECT в Excel 2003 не нашёл (может двссыл?). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2009, 17:49 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
basil12345не нашёл (может двссыл?).ну да, по-русски она ДВССЫЛ(). Вы же по-ангельски в вопросе SUM написали... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2009, 21:24 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
basil12345Не подскажете. как написать функцию, возвращающую имя листа? Вот так: Код: plaintext 1. 2. SomeColumn=SheetName(B1)=SUM(INDIRECT(sheetname(B1)&"!A1:A5"):INDIRECT(sheetname(B1)&"!A1:A5")) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2009, 19:34 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
basil12345, а зачем пользовательская функция, если можно вернуть имя листа через =ЯЧЕЙКА() ? правда, файл нужно сохранить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2009, 13:13 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
- надо передать лист в виде параметра в процедуру - передает - надо передать лист в виде параметра в метод класса - Object doesn't support this property or method' errors код модуля: Public Sub qqq() Dim w As Worksheet Set w = Worksheets("Log") Dim test As Class1 Set test = New Class1 Stop test.test1 (w) End Sub код класса Class1: Public Sub test1(ByRef wksh As Worksheet) Stop End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2009, 10:25 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
Забыл написать вопрос - почему не передает лист в метод моего класса? Cпасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2009, 10:27 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
testing22 Код: plaintext Cпасибо.скобочки лишние - они воспринимаются как часть имени параметра Так все работает: Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2009, 12:00 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
qwrqwr, Огромное спасибо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2009, 12:19 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
А у меня не работает.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2009, 12:31 |
|
||
|
Передать в процедуру имя листа, или сам лист
|
|||
|---|---|---|---|
|
#18+
testing22 код класса Class1: Public Sub test1(ByRef wksh As Worksheet) Stop End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2009, 12:40 |
|
||
|
|

start [/forum/topic.php?fid=61&gotonew=1&tid=2178883]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
164ms |
get topic data: |
8ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 508ms |

| 0 / 0 |
