计算机
Windows 7
Excel 2010
打开Excel表格之后,按下【Alt+F11】组合键调出VBA编辑器;或者依次点击【开发工具】、【Visual Basic】调出VBA编辑器。
如果Excel表格的菜单栏上面没有【开发工具】这一项,【Alt+F11】组合键是比较凑效的,当然也可以通过设置把【开发工具】调出,即:点击【文件】、【选项】,然后在“自定义功能区”里面把“开发工具”这一项勾上。(如果已有,则忽略此步)
在“Sheet1”的代码框里面输入以下程序代码:Sub KongGe()Dim i1, i2, i3, i4, str1On Error Resume Next '忽略运行过程中可能出现的错误Set mysheet1 = ThisWorkbook.Worksheets('Sheet1') '定义工作表Sheet1For i1 = 2 To 1000 '从第2行到1000行 str1 = '' '寄存处中间变量置空 i2 = 0 'i2初始值置0 If mysheet1.Cells(i1, 1) <> '' Then '如果A列对应的单元格不是空白,则 For i3 = 1 To Len(mysheet1.Cells(i1, 1)) '对单元格里面的每一个数据循环 i4 = i2 + 1 '寄存上一次点号“.”的位置 i2 = InStr(i4, mysheet1.Cells(i1, 1), '.') '获取点号“.”的位置 If i2 <> 0 Then '如果存在点号“.”,则 If i4 = 1 Then '如果是第一次截取,则 str1 = Mid(mysheet1.Cells(i1, 1), 1, i2 + 2) '截取第一个数值 End If If i4 > 1 Then '如果不是第一次截取,则 str1 = str1 & ' ' & Mid(mysheet1.Cells(i1, 1), i4 + 2, i2 + 2 - i4 - 1) '把前面截取的字符加空格之后再与后面截取的字符拼接起来 End If Else Exit For '如果条件不满足则退出For循环 End If Next End If mysheet1.Cells(i1, 2) = str1NextEnd Sub
其实,结果并不是很重要,重要的是如何去理清这些思路。正如刚看到的表格一样,数据没有规律,看似毫无头绪,仔细想想,还是可以见缝插针。通过数据截取的办法,截取之后,再把它们拼接起来,这就成了所需的所需的数据。
在VBA编辑界面,按下【F5】键运行VBA程序,回到Sheet1工作表界面将会看到程序的运行结果。
个人经验,仅供参考。