如下图所示,Excel表格要提取文本框、图形里边的文本数据写入工作表。如果文本框、图形数量较少时,可以手动处理;在文本框数量较多时,还是使用VBA程序处理比较快捷。

工具/原料

  • 计算机
  • Windows 7
  • Excel 2010

方法/步骤

  1. 1

    打开Excel表格,点击【开发工具】、【Visual Basic】打开VBA编辑器。

  2. 2

    在VBA编辑器左侧的“工程资源管理器”窗口里边的“VBAProject”上单击右键,选择“插入”、“模块”。

  3. 3

    在模块的代码窗口里边输入以下程序代码,然后按下【F5】键运行程序。

    Sub GetShapeText()

    Dim i, shp

    On Error Resume Next                                  '忽略运行过程中可能出现的错误

    Set mysheet1 = ThisWorkbook.Worksheets("Sheet1")      '定义工作表Sheet1

    Set mysheet2 = ThisWorkbook.Worksheets("Sheet2")      '定义工作表Sheet2

    mysheet2.Range("A1:A10000") = ""                      '清空单元格里边的内容

    i = 0                                                 'i初始化

    For Each shp In mysheet1.Shapes                       '对Sheet1里面的每一个图形执行一次

     If shp.TextFrame2.TextRange.Text <> "" Then          '如果获取的文本不是空白,则

     

     i = i + 1                                             '逐行递增

     

     mysheet2.Cells(i, 1) = shp.TextFrame2.TextRange.Text  '把图形(文本框)里面的文本写入单元格

     

     End If

     

    Next

    End Sub

  4. 4

    回到Sheet2工作表界面,将会看到程序的运行结果。

  5. 5

    VBA程序代码解读:

    (1)使用Sheet2工作表存放获取的文本框、图形数据时,该表格第一列最好不要有数据,以免数据丢失,或者将获取的数据存放于其他工作表上面。

    (2)在不确定工作表上面有多少个文本框、图形的情况下,使用“For Each shp In mysheet1.Shapes”对工作表里面的每一个文本框、图形执行一次,然后获取里面的文本内容。

    (3)如果要查看执行时的图形属性、参数等信息,可以在VBA编辑器的菜单栏上边点击【视图】、【本地窗口】,再按下【F8】键逐一运行程序,在“本地窗口”里边就可以看到相关信息。

    END

注意事项

  • 个人经验,仅供参考。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。