刷新文本框VBA

用户名

我想要一个在Worksheet1!A1中编写内容时在Worksheet2中创建文本框的宏。问题是我希望每当刷新数据时都刷新它。我做了一个,但是又运行了宏,所以我剩下几个文本框,一个在另一个之上。如果单元格为空,我也想删除文本框。

我将不胜感激任何帮助。谢谢。这是我的代码:

Sub criarcaixastexto()

    Dim wsActive As Worksheet
    Dim box As Shape

    Set wsActive = Worksheets(2)
    Set box = wsActive.Shapes.AddTextbox(msoTextOrientationHorizontal, 20, 20, 100, 50)

    box.TextFrame.Characters.Text = Range("Folha1!A1").value

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        Call criarcaixastexto
    End If
End Sub
维塔塔

要忽略空值,请将事件更改为此事件:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub 'to avoid multiple selection.
    If Target.Address = "$A$1" Then
        RemoveShapes
        If Len(Target) > 1 then Criarcaixastexto
    End If
End Sub

这将删除形状,然后再编写新形状。

Sub RemoveShapes()

    Dim shp As Shape
    For Each shp In Worksheets(2).Shapes
        If shp.Type = msoTextBox Then shp.Delete
    Next shp

End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章