2016-08-24 28 views
1

我有几个形状(或更具体地说,下拉列表),这些形状大致与单个细胞对齐,并且想知道每个细胞位于哪个细胞下方。Excel VBA:获取细胞在形状的中心

我知道有以下成员:

Dim dd As Shape 
dd.BottomRightCell 
dd.TopLeftCell 

得到的形状下的右下角或左上角的单元格,但由于形状手动放置,而且并不总是正确对齐(有时右下角触及下面的行,有时候是上面的行的左上角,......)这两个值都不可信。

我想知道当我看着形状的中心时我得到了哪个单元格。有没有办法获得这些信息?

回答

1

你可以用它来找到中心点,我不确定如何选择基于顶部/左边位置的单元格,这是否足够?

lngLeftCentre = shape.Left + (shape.Width/2) 
lngTopCentre = shape.Top + (shape.Height/2) 
Debug.Print "Top: " & lngTopCentre 
Debug.Print "Left: " & lngLeftCentre 
+0

谢谢你,这至少是我正在寻找的前半部分。也许有人知道如何将这个x,y位置转换为实际的单元格? – elzell