| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 631 人关注过本帖
标题:请问在WPS 表格中如何用VBA将这些从网页拷贝过来的文本框控件、单选框控件删 ...
只看楼主 加入收藏
sun2038
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2025-4-3
收藏
 问题点数:0 回复次数:0 
请问在WPS 表格中如何用VBA将这些从网页拷贝过来的文本框控件、单选框控件删除但保留里边的内容?
我试过用下面的代码来删除,但不成功,请大神指出问题在那?

Sub DeleteControlsAndKeepText()
    Dim sht As Worksheet
    Dim oleObj As OLEObject
    Dim shp As Shape
    Dim controlText As String
    Dim targetCell As Range
   
    Set sht = ActiveSheet ' 处理当前活动工作表
    Application.ScreenUpdating = False
   
    ' 处理ActiveX控件(如网页中的单选框和文本框)
    For Each oleObj In sht.OLEObjects
        If TypeName(oleObj.Object) = "OptionButton" Then
            ' 获取单选框的标题和位置
            controlText = oleObj.Object.Caption
            Set targetCell = oleObj.TopLeftCell
            targetCell.Value = controlText
            oleObj.Delete
        ElseIf TypeName(oleObj.Object) = "TextBox" Then
            ' 获取文本框的内容和位置
            controlText = oleObj.Object.Text
            Set targetCell = oleObj.TopLeftCell
            targetCell.Value = controlText
            oleObj.Delete
        End If
    Next oleObj
   
    ' 处理表单控件(旧式控件,如Excel表单元素)
    For Each shp In sht.Shapes
        If shp.Type = msoFormControl Then
            Select Case shp.FormControlType
                Case xlOptionButton
                    ' 获取单选框标题
                    controlText = shp.ControlFormat.Caption
                    Set targetCell = shp.TopLeftCell
                    targetCell.Value = controlText
                    shp.Delete
                Case xlTextBox
                    ' 尝试获取文本框内容(可能需要适配)
                    On Error Resume Next ' 防止属性不存在报错
                    controlText = shp.TextFrame.Characters.Text
                    If Err.Number <> 0 Then controlText = ""
                    Err.Clear
                    On Error GoTo 0
                    Set targetCell = shp.TopLeftCell
                    targetCell.Value = controlText
                    shp.Delete
            End Select
        End If
    Next shp
   
    Application.ScreenUpdating = True
    MsgBox "处理完成!控件已删除,内容保留在对应单元格。"
End Sub
2025-04-03 16:42
快速回复:请问在WPS 表格中如何用VBA将这些从网页拷贝过来的文本框控件、单选框 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019737 second(s), 11 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved