以编程方式定位 excel ListBox

Programmatically Position excel ListBox

我需要在工作表上动态创建和删除 1 - N 个列表框。因为页面会发生变化,所以我无法提前知道将控件放在哪里,所以类似... Left:=10, Top:=10, Width:=106.8, Height:=154.6 的语句将不起作用。例如,我需要能够以编程方式在 C1 或 C55 处放置控件。

我所做的研究只发现了在固定位置静态创建的示例,而且我也无法找到任何可以给我单元格坐标的东西(例如:C1 = Left:=65 , Top:87).

感谢您的帮助。

考虑一下:

Dim i&, n&, r As Range

n = 3
With ActiveSheet
    For i = 1 To n
        Set r = .Range("c1")(i)
        .ListBoxes.Add r.Left, r.Top, r.Width, r.Height
    Next
End With

这里只是简单演示了如何将单元格的尺寸和坐标作为控件的尺寸和坐标。它会在高度上偏离一点。你可以调整它。

此外,您可以使用任何您希望识别细胞的机制。我刚刚做了 C 列的三个顶部单元格。