|
▼タツヤ さん:
>お世話になります。
>シート間のコピー時、コピー先の書式設定(条件付書式)を活かす為
>(コピー元の書式設定はコピーしたくない)に下記のようなコードを
>記述しましたが、うまく動作しません。
> ↓
>Private Sub CommandButton1_Click()
>If UserForm7.OptionButton1.Value = True Then
>Dim コピー元 As Range
>Dim コピー先 As Range
> 元シート名 = "sheet1"
> セル範囲 = "C10:Q349,S10:Z349,AB10:AD349,AG10:AN349,AU10:AX349"
> 新シート名 = "sheet2"
> With Worksheets("sheet1").Activate
~~~~~~~~~ いらない
> Set コピー元 = .Range("C10:Q349,S10:Z349,AB10:AD349,AG10:AN349,AU10:AX349")
>End With
>With Worksheets("sheet2").Activate
~~~~~~~~~ いらない
> Set コピー先 = .Range("C10:Q349,S10:Z349,AB10:AD349,AG10:AN349,AU10:AX349")
>End With
> コピー先.Clear
> コピー先.Value = コピー元.Value
>
これで『オブジェクトが必要です。』
のエラーはなくなると思いますが、ちゃんと転記されないと思います。
それと、”元シート名”とか”セル範囲”とか”新シート名”とか使ってない変数がありますが・・・
私だったら、
Private Sub CommandButton1_Click()
Dim Sh1 As Worksheet, Sh2 As Worksheet
Dim myAry, r
myAry = Array("C10:Q349", "S10:Z3492", "AB10:AD349", "AG10:AN349", "AU10:AX349")
Set Sh1 = Sheets("Sheet1")
Set Sh2 = Sheets("Sheet2")
If UserForm7.OptionButton1.Value = True Then
For Each r In myAry
Sh2.Range(r).Value = Sh1.Range(r).Value
Next
End if
End sub
とします。
|
|