0

.SpecialCells(xlCellTypeConstants, 1) を使用して列 "B" のすべての数値を取得するときに、同じ行のセルもコピーする方法はありますか?

例:

スクリプトがセル B2、B4、B5 を数字で見つけたとします。D2、D4、および D5 もコピーするにはどうすればよいですか? 私はそれをしてもまだspecialcellsを使うことができますか? 最終的に、これらの値を別のシートの列 A と B にコピー/貼り付けたいと思います。

ありがとう!

Dim strOutputFile As Variant
Dim wbkOut As Workbook
Dim tenln As Range
Dim tenlnPaste As Range
Dim wbkVer As Workbook

If strOutputFile(u) Like "*Lines.csv" Then
    With wbkOut.Worksheets(1)
        Set tenln = wbkOut.Worksheets(1).Cells(Rows.Count, 2).End(xlUp)
        Set tenlnPaste = wbkVer.Worksheets("TLines").Range("A" & .Rows.Count).End(xlUp).Offset(1).Resize(tenln.Rows.Count, 1)
        wbkOut.Worksheets(1).Range("B:B").SpecialCells(xlCellTypeConstants, 1).Copy
             With wbkVer.Worksheets("TenLines")
             tenlnPaste.PasteSpecial xlPasteValues
             End With
    End With
End If
4

1 に答える 1

2

はい。実はとても簡単です。以下のようにしてください:

Dim rngConst as Range
On Error Resume Next
Set rngConst = wbkOut.Worksheets(1).Range("B:B").SpecialCells(xlCellTypeConstants, 1)
If Not rngConst is Nothing Then 

    rngConst.Copy 
   'do your pasting

    Set rngConts = rngConst.Offset(,2) 'for moving from B to D
    rngConst.Copy
    'do your pasting

End If
On Error Go To 0

これを実行して、すべてを 1 つのコピー領域に入れることもできます。

Dim rngConst as Range

On Error Resume Next

If Not rngConst is Nothing

    Set rngConst = wbkOut.Worksheets(1).Range("B:B").SpecialCells(xlCellTypeConstants, 1)
    Set rngConst = Range(rngConst, rngConst.Offset(,2))
    rngConst.Copy
    'do your pasting

End If

On Error Go To 0

ただし、これにより、データが新しいシートに 2 つの連続する列にコピーされます。たとえば、B から B へ、および D から D へはコピーされません。

于 2013-01-15T16:49:32.740 に答える