2016-08-16 10 views
-2

シートのsampleアクティブXボタンをクリックする必要がある場合は、別のシートから保存されたデータが行4から始まる列Oに表示されます。ユーザーがsample2ボタンをクリックし、sampleボタンの列Oで行った変更は、その後、列Aに保存され、列Bをあるsample2ボタンに保存されたデータは、その後、列にデータを追加する

Private Sub OptionButton1_Click() 
Dim main, data As Worksheet 
Dim i, lRow As Integer 

Set main = ThisWorkbook.Sheets("Main") 
Set data = ThisWorkbook.Sheets("Data") 

For i = 4 To 18 ' starts in 4 because it is where I want to start to copy the data 
    lRow = lRow + 1 
    main.Range("O" & i) = data.Range("A" & lRow) 
Next i 

End Sub 

O.列のデータに置き換えられますMaindata
これは、データシートからのデータのみをコピーします。しかし、逆の操作を行う方法を知らない場合、別のボタンをクリックすると、現在列Oにあるデータがデータシートの列Aに保存されます。ありがとう。

+0

Data "O"からの値を置く上記のコードは 'Main'や場所、それから値を取ります「データ」に変換する。あなたは「これはデータシートからデータをコピーするだけです」と述べていますか? – DragonSamu

+0

私はデータシートからメインシートにコピーされたデータからのものであることを意味します/ – ramj

+1

同じ行にいくつかのvaraiblesを宣言するときには、それぞれの型を書く必要があります。 'ワークシートとしてデータを消す、ワークシートとしてデータを保存する '、' Dim i As Integer、lRow As Integer'。また、範囲が動的でないため、ループは必要ありません: 'main.Range(" O4:O18 ")。値= data.Range(" A4:A18 ")。値は十分です –

答えて

-1

単純に次のように変更します。に

data.Range("A" & lRow) = main.Range("O" & i) 

data.Range("A" & lRow) = data.Range("O" & i) 

今、あなたはData "A"

+0

メインからデータシートへのこのデータのコピーは、ユーザーが別のボタンをクリックした場合にのみ行う必要があります。 – ramj

+0

@ramj新しいボタンのコードを使用して、投稿した内容を変更することができます。 – DragonSamu

関連する問題