2015-05-27 2 views
1

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

например

SysCmd(4, "Sorting...") 

SysCmd(5)’Set status bar back to normal 

Вопрос - Как я могу получить строку состояния для отображения значения ячейки?

например

SysCmd(4, "Sorting...") & xl.("Sheet1").Range("A1") 

Выше не работает, но есть способ сделать это, в Access VBA?

+0

Какого объекта является 'xl' Способ ссылки на диапазон в excel из Excel будет' [Worksheet Object] .Range («A1») 'Если вы хотите использовать« Sheet1 », вам нужно будет ссылаться на объект рабочей книги перед этим. И от Access вам нужно приложение Excel Application перед этим. – Sobigen

+0

Я назвал xl своим объектом приложения Excel – Elixir

ответ

2

Когда вы используете 4 (acSysCmdSetStatus) в качестве первого аргумента SysCmd, вы можете включить только один дополнительный аргумент ... так что два аргумента равны, а не три.

Но вы можете объединить предложенные второй и третий аргументы в одну строку, и SysCmd будет сотрудничать ...

SysCmd acSysCmdSetStatus, "Sorting... " & xl.("Sheet1").Range("A1") 

Примечание Я предположил xl в вашей ссылки на ячейку, xl.("Sheet1").Range("A1") является объектом рабочей книги Excel. Так как получается xl - это объект приложения, предложение Sobigen, xl.activeworkbook.sheets("Sheet1").Range("A1"), имеет смысл для меня.

Но независимо от правильной ссылки на ячейку, считать, что и сцепить его с тем, что еще вы хотите, чтобы появиться в тексте статуса ... и использовать эту всю строку в качестве второго аргумента SysCmd

+0

Спасибо, я попробую – Elixir

+1

Я думаю, вы получите синтаксическую ошибку, как есть. Если xl - это объект приложения, то изменение 'xl. (« Sheet1 »). Range (« A1 »)' to 'xl.activeworkbook.sheets (« Sheet1 »). Диапазон (« A1 ») должен исправить его. – Sobigen