自动化Excel时如何在特定单元格上放置文本框对象?
时间:2020-03-05 18:54:32 来源:igfitidea点击:
我们正在使用VB.Net使Excel自动化,并试图在可以设置为不打印的Excel工作表上放置多行文本。在这些之间,我们将有可打印的报告。
如果我们添加文本框对象并将打印对象设置设置为false,则可以执行此操作。 (如果我们还有其他方法,请指导我)
添加文本框的代码是:
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 145.5, 227.25, 304.5, 21#)
但定位是以磅为单位。我们需要一种将其放置在特定单元格上并随单元格调整大小的方法。当我们只知道将其放置在哪个单元格上时,如何找到放置它的位置?
解决方案
回答
如果我们具有单元名称或者位置,则可以执行以下操作:
With ActiveSheet .Shapes.AddTextbox msoTextOrientationHorizontal, .Cells(3,2).Left, .Cells(3,2).Top, .Cells(3,2).Width, .Cells(3,2).Height End With
这将在单元格B3上添加一个文本框。调整B3的大小时,文本框也将调整。
回答
当我们复制并粘贴文本框时,Excel会将新文本框放置在当前选中的任何单元格上。因此,我们只需使用VBA复制和粘贴命令即可非常轻松地实现此目的。如果要使用很多非常相似的文本框,这将特别有用,因为我们将有效地创建文本框模板。