Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 07.05.2015
Сообщений: 13
Excel

Обращение к объектам в функции

16.02.2022, 12:57. Показов 714. Ответов 3

Студворк — интернет-сервис помощи студентам
Хочу передать ссылку на внешнюю книгу фунции. Получаю ошибку ByRef argument mismatch.

Подскажите пожалуйста. Как область видимости объекта дать функции? Или есть более правильный способ решения данной задачи?


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub test()
  progPath = ThisWorkbook.Path
  Set WorkBook2 = Workbooks.Open(progPath + "\Книга2.xlsx")
 
  MsgBox (Fun1(ÝòàÊíèãà))
  MsgBox (WorkBook2.Worksheets("Лист1").Cells(1, 1) * 10)
  MsgBox (Fun1(WorkBook2))
  
  WorkBook2.Close
End Sub
 
Function Fun1(ByRef Book As Workbook) As Integer
   Fun1 = Book.Worksheets("Лист1").Cells(1, 1) * 10
End Function
Вложения
Тип файла: xlsx Книга2.xlsx (7.6 Кб, 2 просмотров)
Тип файла: xlsx Книга1.xlsx (7.7 Кб, 2 просмотров)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.02.2022, 12:57
Ответы с готовыми решениями:

Обращение к объектам, созданным в другой функции класса и являющимися объектами GUI
Товарищи, профи, приветствую Вас. Я совсем новичок, потому прошу помощи. Пишу по примеру, переделывая, так что прошу сильно се серчать...

Обращение к объектам
Подскажите пожалуйста. Вот создал шаблон в PyQt, сгенерировал код питон импортирую его в основной файл. Как мне обратиться к объектам,...

Обращение к объектам
Добрый вечер! Не пойму, как убедить Visual Studio Code воспринимать ${...} как обращению к объекту, а просто выводить всё строкой? В...

3
sleep
 Аватар для I can
4941 / 4624 / 842
Регистрация: 13.04.2015
Сообщений: 9,800
16.02.2022, 13:03
Лучший ответ Сообщение было отмечено vitaly_t как решение

Решение

Цитата Сообщение от vitaly_t Посмотреть сообщение
Получаю ошибку ByRef argument mismatch
Переменные надо объявлять.

Добавлено через 3 минуты
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub test()
   Dim WorkBook2 As Workbook, progPath  As String
   progPath = ThisWorkbook.Path
   Set WorkBook2 = Workbooks.Open(progPath + "\Книга2.xlsx")
 
   'MsgBox (Fun1(YoaEieaa))
    'MsgBox (WorkBook2.Worksheets("Лист1").Cells(1, 1) * 10)
    MsgBox (Fun1(WorkBook2))
    WorkBook2.Close
End Sub
 
Function Fun1(ByRef Book As Workbook) As Integer
    Fun1 = Book.Worksheets("Лист1").Cells(1, 1) * 10
End Function
1
1 / 1 / 0
Регистрация: 07.05.2015
Сообщений: 13
16.02.2022, 13:49  [ТС]
Спасибо! Так?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public globalBook As Workbook
 
Sub test()
  progPath = ThisWorkbook.Path
  Set WorkBook2 = Workbooks.Open(progPath + "\Книга2.xlsx")
 
  Set globalBook = WorkBook2
  
  MsgBox (Fun1(ЭтаКнига))
  MsgBox (WorkBook2.Worksheets("Лист1").Cells(1, 1) * 10)
  MsgBox (Fun1(globalBook))
  
  WorkBook2.Close
End Sub
 
Function Fun1(ByRef Book As Workbook) As Integer
   Fun1 = Book.Worksheets("Лист1").Cells(1, 1) * 10
End Function
Добавлено через 45 минут
Добавил ещё один файл и получил прошлую проблему. Подскажите где теперь не так сделано?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub test()
   Dim WorkBook2, WorkBook3 As Workbook, progPath  As String
      
   progPath = ThisWorkbook.Path
   Set WorkBook2 = Workbooks.Open(progPath + "\Книга2.xlsx")
   Set WorkBook3 = Workbooks.Open(progPath + "\Книга3.xlsx")
 
    MsgBox (Fun1(WorkBook2))
    MsgBox (Fun1(WorkBook3))
    
    
    WorkBook2.Close
    WorkBook3.Close
End Sub
 
Function Fun1(ByRef Book As Workbook) As Integer
    Fun1 = Book.Worksheets("Лист1").Cells(1, 1) * 10
End Function
0
sleep
 Аватар для I can
4941 / 4624 / 842
Регистрация: 13.04.2015
Сообщений: 9,800
16.02.2022, 14:23
Цитата Сообщение от vitaly_t Посмотреть сообщение
Dim WorkBook2, WorkBook3 As Workbook, progPath As String
Переменные надо правильно объявлять.

Добавлено через 23 секунды
Visual Basic
1
Dim WorkBook2  As Workbook, WorkBook3 As Workbook, progPath As String
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.02.2022, 14:23
Помогаю со студенческими работами здесь

Обращение к объектам в цикле
Помогите с данным кодом - цель чтобы при наведении курсора на объект выдавала true, а кол-во объектов к примеру 10. Кнопки имеют имя btn1,...

Обращение к дочерним объектам!
Есть объект home в нём 9 дочерних объектов,на которых висят скрипты,как обратится к скрипту 2го объекта (название скрипта на объекте...

Обращение к HTML объектам
Ситуация такая. Есть HTML объект <span id=..></span> В этот спан php файл выводит много чексбоксов echo "<input type='checkbox'...

Обращение к объектам XAML из C#
Всем привет. Такой вопрос. Создал объект Entry в XAML (decEntry) после чего захотел в коде C# обратится к нему, что бы взять из него текст,...

Обращение к объектам системы
Всем привет. Как написать программу которая бы обращалась к определенным объектам в системе,т.е. например я хочу чтобы она настраивала мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru