Почему метод вставки объекта диаграммы не работает? - PullRequest
0 голосов
/ 06 октября 2018

Текущий код:

Const cName = "ChartDummy"
Const rName = "Availability"
Const iconSource = "C:\user.name\defaulfolder\"
'/* Availability is a named Range for this example but can be any valid range */
'/* UF_EmoTrans is a Userform with and Image Control named I_Console */

Dim oCh As ChartObject, chImg As String
Dim Ch As Object

Application.DisplayAlerts = False
With Sheet2
  '.Activate
  chImg = iconSource & "availIcon.jpg"

  Set oCh = .ChartObjects.Add(370, 14, 180, 277.2): oCh.Name = cName
  .Range(rName).CopyPicture xlScreen, xlBitmap

  'oCh.Activate
  oCh.Chart.Paste
  oCh.Chart.Export chImg, "JPG"
  '/* I call this procedure at UserForm_Initialize */
  UF_EMOTrans.I_Console.Picture = LoadPicture(chImg)
  oCh.Delete

End With

Мой текущий код работает, когда я запускаю его в режиме прерывания (используя F8 и проходя через каждую строку).
Экспортирует Диапазон какизображение (через chartobject) и загружает его в пользовательскую форму просто отлично.

How Image Control Looks

Теперь, когда я запускаю это в режиме выполнения (загрузкаформа), он не создает тот же результат.
Кажется, что метод oCh.Chart.Paste не сработал, и поэтому изображение не было вставлено в диаграмму.
После экспорта создается изображение с простым белым фоном..

How it looks when in not in break mode

Итак, мой вопрос, почему это так?Почему он ведет себя по-разному?

PS : он будет работать, если диаграмма активирована (но вам нужно сначала активировать лист) до вставки (закомментированные строки).
НоЯ просто хочу знать, является ли это одной из тех странностей, которые есть в Excel, с которыми нам просто нужно жить.

1 Ответ

0 голосов
/ 07 октября 2018

Когда вы показываете Userform, показывает userform без режима.

или Когда ваша процедура включает userform.show, изображение работало хорошо.

UF_EMOTrans.Show (vbModeless)

или

UF_EMOTrans.Show (0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...