ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Can you use offset and empty in the same code (https://www.excelbanter.com/excel-programming/417441-can-you-use-offset-empty-same-code.html)

Jeremiah

Can you use offset and empty in the same code
 
Imported csv causes my headings to be off on the rows as well as the columns.
As part of my code attempting to realign the column headings, I have the
following code to search column B for any instance of a certain word and copy
it to column B of the previous row. I now have 2 rows consecutively that
have that word in it. I need to be able to empty every other instance of the
word beginning at row 3. Is there a way to copy then empty...search again
and copy then empty or does it make more sense to copy all instances and loop
through again and empty every other instance?

Sub MoveGoals()
Dim Cell As Range
For Each Cell In Range("B:B")
If Cell.Value = "GOALS" Then
Cell.Offset(-1, 0) = "GOALS"
End If
Next Cell
End Sub

JLGWhiz

Can you use offset and empty in the same code
 
If I were doing it, I would empty as I go. Assuming you really intend to move
the found data up one row:

Sub MoveGoals()
Dim Cell As Range
For Each Cell In Range("B:B")
If UCase(Cell.Value) = "GOALS" Then
Cell.Cut Cell.Offset(-1, 0)
End If
Next Cell
Application.CutCopyMode = False
End Sub

You might want to run this on a test sheet first.



"jeremiah" wrote:

Imported csv causes my headings to be off on the rows as well as the columns.
As part of my code attempting to realign the column headings, I have the
following code to search column B for any instance of a certain word and copy
it to column B of the previous row. I now have 2 rows consecutively that
have that word in it. I need to be able to empty every other instance of the
word beginning at row 3. Is there a way to copy then empty...search again
and copy then empty or does it make more sense to copy all instances and loop
through again and empty every other instance?

Sub MoveGoals()
Dim Cell As Range
For Each Cell In Range("B:B")
If Cell.Value = "GOALS" Then
Cell.Offset(-1, 0) = "GOALS"
End If
Next Cell
End Sub


Jeremiah

Can you use offset and empty in the same code
 
Exactly. Thanks again, it works perfectly.

"JLGWhiz" wrote:

If I were doing it, I would empty as I go. Assuming you really intend to move
the found data up one row:

Sub MoveGoals()
Dim Cell As Range
For Each Cell In Range("B:B")
If UCase(Cell.Value) = "GOALS" Then
Cell.Cut Cell.Offset(-1, 0)
End If
Next Cell
Application.CutCopyMode = False
End Sub

You might want to run this on a test sheet first.



"jeremiah" wrote:

Imported csv causes my headings to be off on the rows as well as the columns.
As part of my code attempting to realign the column headings, I have the
following code to search column B for any instance of a certain word and copy
it to column B of the previous row. I now have 2 rows consecutively that
have that word in it. I need to be able to empty every other instance of the
word beginning at row 3. Is there a way to copy then empty...search again
and copy then empty or does it make more sense to copy all instances and loop
through again and empty every other instance?

Sub MoveGoals()
Dim Cell As Range
For Each Cell In Range("B:B")
If Cell.Value = "GOALS" Then
Cell.Offset(-1, 0) = "GOALS"
End If
Next Cell
End Sub



All times are GMT +1. The time now is 08:09 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com