2017-05-24 8 views
0

私はこのVBAマクロをビルドするのに3日以上を探しています。私は何か助けが必要だと思っています。私はループを使ってマクロを構築したい特定の固定テキスト(これは私の参照ステップテキストになります)を列に入れて、列Cとしましょう。列Bの左にある次のセルにテキストがオフセットされ、このセルに可変テキストがあります。 Cの次のテキストステップの直前にコピーしたいと思います。マクロはダブルループを作成し、C列のテキストを最初に検索し、B列の隣接セルにオフセットする&は、Bのセルの値をCの次のテキストステップの前に貼り付け、すべての列cで最初のループを実行します。最初のループでの試行は、特定のテキストをブール値として識別するか、For Eachループを使用するかのいずれかで成功させるためにどれだけ成功しましたか。私の難しい部分は、常に列Cの次のステップの前にセルに列Bのテキストをインクリメントし、2つのループを互いに関連付けるために2番目のループにありました。 以下は私の裁判です。もし私が助けてくれれば幸いです。VBAループでテキストを検索してからオフセットを増やす

Sub test() 

    Dim i As Long 

    Dim ilastrow As Long 

    Dim n As string 

    ilastrow = Range("C1").End(xlDown).Row 
Dim r As Range, cell As Range 
Set r = Range("C1").End(xlDown).Row 

For Each cell In r 
     If cell.Value = "TH" Then 
    ActiveCell.Offset(rowOffset:=0, columnOffset:=-1).Activate 
n = ActiveCell.Value 
'from here I want to copy n down to every cell until before next "TH" in column C then proceed with next "TH" as n will be changed and so on for all "TH" in Colmun C 

End If 
    Next 
End Sub 

what I want to do with picture

任意のヘルプは、事前に感謝感謝されます:)

答えて

0

これは、あなたが欲しいものを行う必要があります。

Option Explicit 


Sub test() 

    Dim sht As Worksheet 
    Set sht = ActiveSheet 

    With sht 
    Dim ilastrow As Long 
    ilastrow = .Cells(.Rows.Count, "C").End(xlUp).Row 

    Dim r As Range, cell As Range, prevCell As Range 
    Set r = .Range("C1:C" & ilastrow) 

    Set prevCell = Nothing 
    For Each cell In r 
     If cell.Value = "TH" Then 
     If Not prevCell Is Nothing Then 
      prevCell.Offset(1, -1).Resize(cell.Row - prevCell.Row - 1, 1).Value = prevCell.Offset(, -1).Value 
      Set prevCell = cell 
     Else 
      Set prevCell = cell 
     End If 
     End If 
    Next 

    ilastrow = .Cells(.Rows.Count, "A").End(xlUp).Row 
    prevCell.Offset(1, -1).Resize(ilastrow - prevCell.Row, 1).Value = prevCell.Offset(, -1).Value 

    End With 

End Sub 
+0

はたくさんずっとあなたの助けに感謝偉大なおかげ作品、私が直面した問題は列 "C"の最後の "TH"で停止し、列 "B"の最後の "TH"の次の前のセルに進まないことになります。もしあなたがそれを修正することができれば、列Bの最後の前のセルに進み、列 "A"のような列の最後のセルまで、または列 "B"の最後のものまでそれをコピーします。前もってありがとうございます:) – ahmedmaherfx

+0

「B列」の最後の「TH」の隣にある前のセルには進まないと言っても、A列のセルはB列にコピーされますか?あなたが望むものの写真を投稿すれば、それに応じてコードを変更できるはずです。 – Amorpheuses

+0

これは私がしたいことですhttp://imgur.com/a/F5ktq – ahmedmaherfx

関連する問題