解析excel表

时间:2016-08-11 17:49:00

标签: vb.net excel vba parsing office-interop

我有以下需要解析的excel表数据:

A                         B C                                       D
----------------------------------------------------------------------------------
70 Skill Set                Career Prep Skills      
71 Knowledge Objectives     Something will blah 
72          
73 AR.1                   • blah blah blah. 
74                        • blah blah blah. 
75                        • blah blah blah. 
76                        • blah blah blah. 
77 Performance Objectives   Something will and
78          
79 AR.2                   • blah blah blah. 
80 AR.3                   • blah blah blah. 
81 AR.4                   • blah blah blah.
82 AR.5                   • blah blah blah.
83 AR.6                   • blah blah blah. 
84 AR.7                   • blah blah blah.
85 AR.8                   • blah blah blah.
86 AR.9                   • blah blah blah.
87 AR.10                  • blah blah blah.
88 AR.11                  • blah blah blah.
89 Skill Set                Safety is key
90 Knowledge Objectives     blah blah blah.     
91          
92 AR.12                  • blah blah blah. 
93                        • blah blah blah.
94                        • blah blah blah.

我需要的格式是:

Skill Set    Career Prep Skills           AR.1    blah blah blah. 
                                                  blah blah blah. 
                                                  blah blah blah. 
                                                  blah blah blah.
                                          AR.2    blah blah blah.
                                          AR.3    blah blah blah.
                                          AR.4    blah blah blah.
                        etc....
Skill Set    Safety is key                AR.12   blah blah blah.
                                                  blah blah blah.
                                                  blah blah blah.

我有以下代码:

xlsCell = xlsSheet.Range("A1:A200")

For Each oRowRange As Excel.Range In xlsCell.Rows
    For Each oCellRange As Excel.Range In oRowRange.Columns
        Dim theColor = oCellRange.Interior.Color
        Dim colorRGB = (theColor Mod 256) & ", " & ((theColor \ 256) Mod 256) & ", " & (theColor \ 65536)

        If colorRGB = "252, 213, 180" Then
            'find the last row in the spreadsheet:
            lastrow = xlsCell.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row
            'Change the range to reflect the last row:
            xlsCell = xlsSheet.Range("A1:A" & lastrow)
            'found first listing (Standard) so save it's text:
            tmpStandard = oCellRange.Text 'a.k.a Skill Set
            'Move on over to see the Cluster Name:
            tmpCluster = oCellRange.Offset(0, 1).Text() 'a.k.a Career Prep Skills
            'Now we need to get the OBJ:
               'a.k.a AR.1
            'Now get paragraph(s):
              'a.k.a blah blah blah.
        End If
    Next
Next

但我不确定如何去了解其不同的AR。数字等。

如上所示的可视化示例: enter image description here 任何帮助都会很棒!

2 个答案:

答案 0 :(得分:0)

这不是一个真正的答案,它更像是一个评论,提供一些关于如何识别你感兴趣的“AR”细胞的想法。希望这张图片能提供一些你可以使用的想法:

enter image description here

答案 1 :(得分:0)

这看起来很简单,但在我举例之前,我想确认一下,因为你的样本数据和图像看起来并不相符。这两行打印的是什么?

Debug.Print Range("C70:C94").SpecialCells(xlCellTypeConstants).Address(0, 0)
Debug.Print Range("C70:C94").SpecialCells(xlCellTypeBlanks   ).Address(0, 0)