1

これは知っている人にとっては簡単かもしれませんので、助けていただければ幸いです...

私はこのコードを持っています:

  Dim shtSource As Worksheet
  Dim shtDestination As Worksheet
  Dim nSourceRow As Long, nDestRow As Long


  Set shtSource = Sheets("Forecast Opex")
  Set shtDestination = Sheets("Opex Pers Sala Admi")


    nSourceRow = 46

    For nDestRow = 2 To 97

        shtDestination.Cells(nDestRow, 3) = shtSource.Cells(nSourceRow, 2).Value 'NewForecast

        nSourceRow = nSourceRow + 1

    Next nDestRow

...そして問題なく動作します...問題は、「Opex Pers Sala Admi」という名前のシートを作成して、別のセル (例: H5) にある名前に基づいて変更する必要があることです。そのセルの内容は、広告の送信先を使用するシートを示す特定の条件によって異なります。

ありがとうございました

コメントから更新

Sub Update_Click() 
    Dim shtSource As Worksheet 
    Dim shtDestination As Worksheet 
    Dim nSourceRow As Long, nDestRow As Long 

    Set shtSource = Sheets("Base") 
    Set shtDestination = Sheets(Sheets("Base").Range("L21")) 

    '...
End Sub
4

1 に答える 1

0

以下のコードを試してください

  • for ループでは、カウンター変数を明示的にインクリメントする必要はありません

.

 Sub test()

    Dim shtSource As Worksheet
    Dim shtDestination As Worksheet
    Dim nSourceRow As Long, nDestRow As Long

    Set shtSource = Sheets("Sheet1")
    Set shtDestination = Sheets(Sheets("<sheet name>").Range("H5"))


    nSourceRow = 46

    For nDestRow = 2 To 97
        shtDestination.Cells(nDestRow, 3) = shtSource.Cells(nSourceRow, 2).Value
    Next nDestRow

End Sub
于 2013-06-23T00:47:18.067 に答える