2016-08-15 4 views
0

У меня есть код VBA, так что при нажатии кнопки пользователь может выбрать файл со своего компьютера и вставить его как объект, похожий на значок в электронную таблицу.VBA - вставлять объекты рядом друг с другом

Код таким образом, что он подсчитывает каждый раз, когда нажата кнопка, так что каждая новая иконка вставляется пользователем появляется справа от существующего, то есть:

count = count + 1 
ActiveSheet.Shapes("Object 1").IncrementLeft 90*count 

Теперь проблема в том, Я не знаю, как изменить счетчик, чтобы каждый раз, когда пользователь удаляет объект из электронной таблицы, счетчик уменьшался бы на 1 (так что следующий вставленный объект все еще находился бы в строке и соответствующее расстояние справа от первый объект). Я бы предположил, что я буду использовать событие, но не кажется, что это событие, когда объект удаляется.

Любые советы?

ответ

-1

Как вы справляетесь с удалением? Возможно, вы можете попросить пользователя нажать кнопку для удаления заранее. Таким образом, пользователь нажимает кнопку, вы видите, сколько объектов находится в любом поле, на которое вы ссылаетесь, а затем продолжайте сканирование каждый раз, когда пользователь начинает что-то делать.

В любом случае вам придется иметь возможность отслеживать каждый раз, когда пользователь инициирует что-то. Или вы можете отслеживать по выбору; IE, если пользователь выбирает один из объектов, смотри, сколько осталось объектов, после каждого действия, выполняемого пользователем.

Предположительно, они выбирают его только для того, чтобы удалить.

+0

также попробуйте это http://www.tek-tips.com/viewthread.cfm?qid=1743784 – bdpolinsky

0

Поскольку встроенные файлы являются объектами OLE, вам не нужно поддерживать счет. Вы можете просто вычислить его на лету, используя коллекцию OLEObjects.

Если есть другие объекты ActiveX, вам может потребоваться выполнить итерацию и просто подсчитать элементы типа xlOLEEmbed.

Count = 0 
For Each o In Sheet1.OLEObjects 
    If o.OLEType = xlOLEEmbed Then Count = Count + 1 
Next 
Смежные вопросы