以下のコードは、タブの色に基づいてタブを選択します。各シートは同じフォーマットであり、異なる値を含んでいます。私は.findとoffsetを使って特定のセル(現会計年度プラス1に相当する)を見つけて、式の代わりにそのセルをコピーして貼り付けようとしています。以下のコードは必要なタブを選択し、正しいセルを探しますが、そのセルをコピーして値として貼り付けません。このコードは、すべて異なるタブ名を持つ複数のワークブックで使用されるため、特にシート名を付けないようにしています。vbaを使用してワークシート配列に特定のセル(.findを使用)をコピー&ペーストする
Sub freeze()
Dim ws As Worksheet
Dim strg() As String
Dim count As Integer
count = 1
For Each ws In Worksheets
If ws.Tab.Color = 255 Then
ReDim Preserve strg(count) As String
strg(count) = ws.Name
count = count + 1
Else
End If
Next ws
Sheets(strg(1)).Select
Dim aCell As Range
Set aCell = Range("B9:B79").Find(What:=Worksheets("EmailTemplate").Range("A1").Value)
If Not aCell Is Nothing Then
Sheets(strg(1)).aCell.Select
ActiveCell.Offset(0, 6).Select
Selection.copy
Selection.PasteSpecial xlPasteValues
Else
End If
For I = 2 To UBound(strg)
Sheets(strg(I)).Select False
Next I
End Sub
あなたがこれを行うことができないあなたに
エラーが発生しましたか?常にエラーとその発生場所を記述してください。 [ここで](http://stackoverflow.com/documentation/excel-vba/1107/vba-best-practices/9292/avoid-using-selector-activate)いくつかのヒントを教えてください) '.Select'などの使い方について – arcadeprecinct
あなたのコードを実行しましたが、もっと情報が必要です。複数のシートを赤(255)にすることはできますか?はいの場合、コード内に複数のシートを使用する規定はありません。赤いシートを見つけて検索に一致するものを見つけたら、同じセルの上にコピーして貼り付けています。それはあなたが欲しいものですか?また、私は 'Sheets(strg(1))aCell.Select'を単に 'aCell.Select'に変更する必要がありました。 –
arcadeprecinctでこれを見ていただきありがとうございます。私は実際には何の誤りもありません。それは単に値として貼り付けません。残りのコードは期待どおりに実行されます。 – HeatherRW