ahp-1984 Ответов: 3

Проблема с макросом Vba excel


У меня есть один макрос Excel, который имеет код VBA, и этот макрос имеет ссылку на какой-то другой VB .dll
поэтому мне нужно отладить макрос excel по ссылке на проекты VB

не могли бы вы сказать мне, как я могу отлаживать ?

Что я уже пробовал:

Пытался открыть файл excel в Visual basic

3 Ответов

Рейтинг:
28

Richard MacCutchan

Используйте отладчик Excel. VBA-это не то же самое, что Visual Basic.


ahp-1984

Спасибо за Ваш вклад. Я могу отлаживать код макросов excel. и мой макрокод excel вызывает некоторые классы vb dll, как я могу их отладить ?

Richard MacCutchan

Я даже не знаю, возможно ли это, так как DLL должна быть отлажена вне Excel. И если он не был построен в режиме отладки, то вряд ли вы могли бы получить от него какую-либо информацию. Если это ваша собственная библиотека DLL, то вы должны иметь возможность использовать Visual Studio. Если это продукт третьей стороны, то вам нужно обратиться за помощью к поставщикам.

Dave Kreskowiak

Вы не можете сделать это в отладчике VBA. Он не будет входить во внешний код.

ahp-1984

это мой собственный проект VB . как я могу переместить отладчик из Excel в свой проект VB ?

Richard MacCutchan

Я никогда не пробовал этого. Вам нужно использовать Google, чтобы найти предложения.

Рейтинг:
1

Patrice T

Цитата:
не могли бы вы сказать мне, как я могу отлаживать ?

- Открыть файл в формате XL
- Alt+F11 для открытия VBE (встроенный редактор макросов VBA)

VBE-это место, где макрос был включен в ваш XL-файл, он включает в себя инструменты отладки.

Отладка в Excel VBA - простые макросы Excel[^]
MS Excel 2013: введение в отладку VBA[^]
Как отладить Excel VBA - YouTube[^]


Рейтинг:
0

CHill60

Если вы откроете свой проект VB DLL в Visual Studio, поместите подходящую точку останова и затем "запустите" его - очевидно, что в этот момент ничего не произойдет.

Теперь перейдите в свой Excel VBE и шагните в макрос, вызывающий DLL - в момент вызова DLL-элемента управления следует переключиться на Visual Studio и остановиться в точке останова, которая была у вас ранее.