2

このセルのコピー/貼り付けの開始位置の変数を作成する必要があるため、それを他のデータの参照ポイントとして使用できます。それは可能ですか?構文がわかりません。

wbkCS.Worksheets("Cut Sheet").Range("S4:S2000").Copy

With wbkVer.Worksheets("Cutsheets")
   .Range("A" & .Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues
End With
4

2 に答える 2

9

Rangeこれらの範囲をオブジェクトとして保存するための構文は次のとおりです。

dim firstRange as Range, secondRange as Range

set firstRange = wbkCS.Worksheets("Cut Sheet").Range("S4:S2000")

firstRange.copy

With wbkVer.Worksheets("Cutsheets")
    set secondRange = .Range("A" & .Rows.Count).End(xlUp).Offset(1)
    secondRange.PasteSpecial xlPasteValues
End With

これらの範囲の1つに最初のセルが必要な場合は、次のようになります。

firstRange.Cells(1,1)

于 2012-12-31T20:51:20.763 に答える
2

あなたはすでに答えを持っていますが、次のようなものでクリップボードを完全に避けることもできます:

Sub WithoutClipboard()

'define the two ranges variables
Dim firstRange As Range
Dim secondRange As Range

'set the range variables to specific ranges
Set firstRange = wbkCS.Worksheets("Cut Sheet").Range("S4:S2000")
With wbkVer.Worksheets("Cutsheets")
    Set secondRange = .Range("A" & .Rows.Count).End(xlUp).Offset(1)
End With

'resize the second range so it exactly the same size as the first range
With firstRange
      Set secondRange = secondRange.Resize(.Rows.Count, .Columns.Count)
End With

'move the data without having to use copy/paste
secondRange.Value = firstRange.Value

End Sub
于 2013-01-01T13:48:22.433 に答える