View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.programming
ryguy7272 ryguy7272 is offline
external usenet poster
 
Posts: 2,836
Default For Next Loop and If..."Relative dose*"...Then

I made a slight modification, but it still is not working. I am now using
this code:

Sub TtoC()
'Dim c As Variant
Dim LastRow As Long
Dim i As Long
ActiveSheet.UsedRange.Rows.Hidden = False
LastRow = Cells(Rows.Count, 1).End(xlUp).Row

For i = LastRow To 2 Step -1
If InStr(1, Cells(i, 1), "Relative dose", vbTextCompare) Then

ActiveCell.Select
Selection.TextToColumns Destination:=Range(c), DataType:=xlDelimited _
, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)),
TrailingMinusNumbers:=True
End If

Next
End Sub

It fails on this line:
Selection.TextToColumns Destination:=Range(c), DataType:=xlDelimited _

Any suggestions or do I need to reconsider the method of my approach?

Thanks,
Ryan---

--
RyGuy


"Sheeloo" wrote:

It will pick all cells which have "Relative dose" anywhere in them...

"ryguy7272" wrote:

Yes, that would work, but there is some stuff after that in some cells. For
instance, one cell has this:
Relative dose [%] Dose [Gy] Ratio of Total Structure Volume [%]
Many cells are different; that's why I tried the * wildcard, after the
'Relative dose'. Any more suggestions?

Thanks,
Ryan---


--
RyGuy


"Sheeloo" wrote:

Remove the * from the following line;
If InStr(1, Cells(i, 1), "Relative dose*", vbTextCompare) Then

"ryguy7272" wrote:

End If! Of course. it was late when I started this things last night. Now,
with the End If in the appropriate spot, the macro still doesn't do what I
wanted it to do. As I F8 through the code I notice that it seems to go form
the If... to the End if... to Next... and goes through this cycle over and
over. I guess there is something wrong with the IF statement, but I'm not
sure what it is. Can someone point out the problem.

TIA,
Ryan---



--
RyGuy


"Sheeloo" wrote:

Also what is c in Range(c)? Named range?


"ryguy7272" wrote:

I am trying to select cells in a used range and perform a €˜text to column
change on all cells that fall into this used range. I have about 20
occurrences of this: €˜Relative dose [%] with some blanks in the cell right
after this language, and then some, well, basically random variables, after
that. Ideally, Id like to identify the value in each cell in the used
range, and if the value in the cell is €˜Relative dose [%] then perform the
€˜text to column operation on the next cell below that, and run until Excel
finds a blank cell, and then search again for €˜Relative dose [%], and so on
and so forth until Excel reaches the end of the used range. My code is below:

Sub TtoC()
'Dim c As Variant
Dim LastRow As Long
Dim i As Long
ActiveSheet.UsedRange.Rows.Hidden = False
LastRow = Cells(Rows.Count, 1).End(xlUp).Row

For i = LastRow To 2 Step -1
If InStr(1, Cells(i, 1), "Relative dose*", vbTextCompare) Then

cell.Select
Selection.TextToColumns Destination:=Range(c),
DataType:=xlDelimited _
, TextQualifier:=xlDoubleQuote,
ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=True,
Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4,
1)), TrailingMinusNumbers:=True

Next
End Sub

It fails on the next line. Can someone tell me what is wrong here?

Thanks,
Ryan---



--
RyGuy