Я пытаюсь добавить фигуру в определенную ячейку, но по какой-то причине не может получить форму, добавленную в нужное место. Ниже приведен код, я использую, чтобы добавить форму:vba, чтобы добавить форму в определенную ячейку в Excel
Cells(milestonerow, enddatecellmatch.Column).Activate
Dim cellleft As Single
Dim celltop As Single
Dim cellwidth As Single
Dim cellheight As Single
cellleft = Selection.Left
celltop = Selection.Top
ActiveSheet.Shapes.AddShape(msoShapeOval, cellleft, celltop, 4, 10).Select
я использовал переменные для захвата верхней и левой позиции, чтобы проверить значения, которые были установлены в моем коде против значений я видел при добавлении формы вручную в активном месте при записи макроса. Когда я запускаю свой код, cellleft = 414.75 и celltop = 51, но когда я добавляю форму вручную к активной ячейке при записи макроса, cellleft = 318.75 и celltop = 38.25. Я искал эту проблему некоторое время и просмотрел много существующих вопросов онлайн о добавлении фигур, но я не могу понять это. Любая помощь будет принята с благодарностью.
Приведенный выше код работает абсолютно нормально для меня. –
'.Activate' в первой строке не обязательно означает, что он равен Selection, тогда ... вам нужно его проверить. Или просто измените '.Activate' на' .Select' в первой строке. –
У меня такая же проблема. Существует небольшая разница между .Cell.Left и истинным положением фигуры. Эта «ошибка» встречается только на excel 2007. На excel 2003 код vba работает хорошо. В 2010 году я не знаю. Я пробую Debug.Print, но я не вижу никакого эффекта. – 2013-09-04 14:30:43