Excel VBA 2016将范围单元格传递到计算的另一个工作表

时间:2017-01-04 09:47:11

标签: excel vba excel-vba

我正在寻找一个代码来遍历命名范围单元格值,如果它们在sheet1中大于9。如果找到Cells值(> 9),则将该单元格值作为计算值传递给sheet2

格式如下:Sheet2.Range(name).Cells.value = Sheet1.Range(name).Cells.value

目前我设法在sheet1中检查这些值并且它可以正常工作。

我无法在sheet2 cellTarget循环中分配值

Dim rngSource As Range, cellSource As Range
Dim rngTagert As Range, cellTarget As Range

Set rngSource = Range("SourceRange") 'Sheet1
Set rngTagert = Range("TargetRange") 'Sheet2

For Each cellSource In rngSource
    If cellSource.Value >= 9 Then
        For Each cellTarget In rngTagert
            cellTarget.Value = cellSource.Value - 9
        Next cellTarget
    Else
        cellTarget.Value = cellTarget.Value
    End If
Next cellSource

错误说“无效的下一个控制变量参考”

非常感谢

1 个答案:

答案 0 :(得分:1)

  • 要么先生

    首先Next cell Next cellTarget

    第二个Next cellNext cellSource

  • 或者只使用Next cell

  • 替换每个Next

以下是第二个选项

Sub main()
    Dim rngSource As Range, cellSource As Range
    Dim rngTagert As Range, cellTarget As Range

    Set rngSource = Range("SourceRange") 'Sheet1
    Set rngTagert = Range("TargetRange") 'Sheet2

    For Each cellSource In rngSource
        If cellSource.value >= 9 Then
            For Each cellTarget In rngTagert
                cellTarget.value = cellSource.value - 9 'Sheet2 Cell.Value = Sheet1 Cell.Value -9
            Next
        Else
            cellSource.value = cellSource.value 'Sheet1 cellTarget.Value = cellTarget.Value 'Sheet2
        End If
    Next
End Sub