选择具有指定值的行之间的单元格范围

时间:2013-11-06 18:30:40

标签: vba excel-vba excel

我正在尝试在Excel中格式化大型文本文件。它看起来与此类似:

Headings  
----------  
Data   
Data 
Data  
ENDROW  
Other Information  

我想选择----------和ENDROW之间的单元格,然后在所选单元格上使用text to columns函数。我记录了一个文本到列位的宏,最后我想用它来遍历整个文档。

 Sub findRange()
 Dim nRow As Long
 Dim nStart As Long, nEnd As Long

' Figure out where the range should start.
For nRow = 1 To 65536
If Range("A" & nRow).Value = "----------" Then
nStart = nRow
Exit For
End If
Next nRow

' Figure out where the range should end.
For nRow = nStart To 65536
If Range("A" & nRow).Value = "ENDROW" Then
nEnd = nRow
Exit For
End If
Next nRow
nEnd = nEnd - 1

Range("A" & nStart & ":D" & nEnd).Select
   Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
       FieldInfo:=Array(Array(0, 1), Array(16, 1), Array(21, 1), Array(27, 1), Array(56, 1), _
       Array(59, 1), Array(60, 1), Array(73, 1)), TrailingMinusNumbers:=True
   Selection.ColumnWidth = 16.33
   Range("B:B,F:F,D:D,H:H").Select
   Range("H1").Activate
   Selection.Delete Shift:=xlToLeft

End Sub

这是错误的,任何输入都表示赞赏。我是一个新手,试图学习我的方法。

1 个答案:

答案 0 :(得分:0)

似乎微软一次只能转换一列。尝试更换     范围(“A”& nStart&“:D”& nEnd)。选择 同     范围(“A”& nStart&“:A”& nEnd)。选择 并且,循环通过其他三列。