2016-10-19 26 views
-1

vbaコードのヘルプが必要です。私は私が今 ボーダーを追加し、合計行の後に値を削除するvbaコード

ここ (列Rで)第二のデータセットに境界線を追加し、合計行の後に2つの値を削除するには(4合計)VBAコードを持つようにしたい、私がこれまでに得たもので、

Sub Test() 
Dim LastRow As Long, x As Long 
LastRow = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row 
x = 2 
Rows(LastRow - x + 1 & ":" & LastRow).Delete 
Set dat = Sheets("Table F Agencies Combined").Range("M:N") 
dat.Replace What:="TRUE", Replacement:="" 
End Sub 
最後の2行を削除してTRUEを何も置き換えることはできませんが、最初のセットの後に2つの値を削除し、2番目のデータセットの列Rに境界線を追加する方法はわかりません。

Data sets

revised data

final data

+0

データの範囲が月ごとに異なることを忘れてしまったので、境界を追加して値を削除するためにデータセットをループするコードが必要です。 – sc1324

答えて

1

私は、データの各ブロックを別々に扱うほうがよいと思います。データを失うことなくこのコードを繰り返し実行できます。

Sub Test2() 

    Dim c As Range, r As Range 
' 1st block 
    Set c = Range("B:B").Find("total", Range("B1"), xlValues, xlWhole, , , False) 
'c.Select 
    c.Offset(1).Resize(2).EntireRow.ClearContents 

' 2nd block 
    Set c = Range("B:B").Find("total", c, xlValues, xlWhole, , , False) 
'c.Select 
    c.Offset(1).Resize(2).EntireRow.ClearContents 

    Set r = Intersect(c.EntireRow, Columns("R")) 
    Set r = Range(r, r.End(xlUp)) 
    r.BorderAround xlContinuous, xlThick 

End Sub 
+0

ありがとう、それは4つの値を美しく取る、そこに2番目のデータセット列Rの周りの境界を組み込むことができる方法はありますか?何とかそれは表示されていません。もう一度、ありがとうございます。 – sc1324

+0

私は自分の答えを変更して境界線を追加しました。すばやく汚いですが、既存のデータレイアウトで動作します。 – DaveU

+0

こんにちはデイブ、私はあなたが2番目の画像を見たらLRセルまでボーダーを持っているので、改訂版が部分的に機能していると思います。私はxlThickをxlMediumに修正することができますので、そこには大したことはありません – sc1324

0

あなたはあなたのコード内でいくつかのミス(構文エラー、論理エラー)を有していました。私はあなたのためにそれらを修正しました。

Sub Test() 
    Dim dat As Range: Set dat = Sheets("Table F Agencies Combined").Range("M:N") 
    Dim LastRow As Long, x As Long 
    Dim myCell As Variant 

    LastRow = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row 
    x = 2 
    Rows(LastRow - x + 1 & ":" & LastRow).Delete 

    For Each myCell In dat 
     myCell.Value = Replace(UCase(myCell.Value), "TRUE", "") 
    Next myCell 
End Sub 
関連する問題