1

Excel の VBA の新しいユーザーとして、次のことを完了しようとしています
。1) 条件について、「インデックス」というシートの 1 つの列の複数の行を確認します (私の条件は、列 J のセルで文字 Y を探すことです)。 )
2) 条件が満たされた各行から、選択した列を VBA コードでプログラムされた別のシートに
コピーします。

条件に一致する行から選択した列を別のシートにコピーするために以前に VBA コードで質問をしましたが、ATl LED から次のコードが親切に提供されました。 )

私はコードを試し、IF ステートメントで .Value を .FormulaR1C1 に微調整しました。数式がコピーされ、コピー先のシート、つまり Sheet2 で機能しますが、書式設定を機能させることができません。

私は何が欠けていますか?

Sub try3()
Dim i, x As Long
Dim Y as String
Dim ws1 As Worksheet: Set ws1 = ActiveWorkbook.Sheets("Index")
Dim ws2 As Worksheet: Set ws2 = ActiveWorkbook.Sheets("Sheet2")
x = 5
Y = "Y"
For i = 2 To 500:
If ws1.Cells(i, 10) = Y Then
   Range(ws2.Cells(x, 1), ws2.Cells(x, 7)).Value = Range(ws1.Cells(i, 3), ws1.Cells(i, 9)).Value
  x = x + 1
End If
Next i
End Sub

ありがとう、ジョンM

4

1 に答える 1

1

次のコード行を配置します。

Range(ws1.Cells(i, 3), ws1.Cells(i, 9)).Copy Range(ws2.Cells(x, 1), ws2.Cells(x, 7))

あなたの行の代わりに:

Range(ws2.Cells(x, 1), ws2.Cells(x, 7)).Value = Range(ws1.Cells(i, 3), ws1.Cells(i, 9)).Value

または、ws1 シートにコピーしたくない数式 (ただし値) がある場合は、両方を同じ順序に保ちます。

于 2013-03-15T17:42:24.093 に答える