Excel 基于参考单元的sht估计

Excel 基于参考单元的sht估计,excel,vba,Excel,Vba,这可能是谁知道的人谁很快,所以我会感谢任何帮助 我有以下代码: 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") nSourceRo

这可能是谁知道的人谁很快,所以我会感谢任何帮助

我有以下代码:

  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
。。。而且效果很好。。。问题是,我需要根据位于另一个单元格(例如H5)中的名称更改名为Opex Pers Sala Emmi的表。该单元格中的内容取决于指示要使用ad目的地的工作表的特定条件

多谢各位

根据评论更新

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
试试下面的代码

在for循环中,不需要显式增加计数器变量


你需要更改它的名称吗?或者它的名称?或者什么?我想做的是从一张工作表SHT中提取某些数据到目标工作表SHT目的地,该目的地根据特定条件不断变化。包含要用作目标的工作表名称的单元格从不更改,其值工作表名称在另一个进程中确定。。。我不确定这是否能澄清一点。。。请不要在评论中发布代码。您可以编辑您的原始帖子,我这次已经为您完成了。您需要将SheetsSheetsBase.RangeL21更改为SheetsSheetsBase.RangeL21。Value@chrisneilsen ... 你明白了!!非常感谢。你凭什么认为H5在活动表上?而且你已经打破了行动循环谢谢你Santosh。。。还是不行。。。或者有什么不对劲。我得到运行时错误13。。。上的类型不匹配:Set-shtDestination=SheetsRangeL21@chrisneilsen断断续续!很好的术语。这不是更有意义吗?@igornachov最好指定你的射程H5在哪里,否则它会指向活动表。请找到我更新的答案,并确保范围中的值是有效的工作表名称。@Santosh去掉nSourceRow的增量,因为增量nDestRow更改了循环的结果。无论如何,for循环不是OP的重点,我建议你从答案中去掉这一部分。
 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