将单元格值复制到定义的工作表&细胞参考(循环)

时间:2018-02-14 20:36:38

标签: excel vba loops copy

我尝试根据用户定义的工作表和单元格引用复制范围中的值。例如,在A1中,我已经定义了要复制到的工作表名称,B1是要复制到&amp ;;的单元格引用。 C1是要复制的值。下面的代码仅针对第1行完成此操作,但我需要为定义范围内的所有行(即命名范围A1:C200)循环此操作,或直到该行为空。

最好我可以选择复制范围内的单元格值(例如上面的C1)或范围内存在的公式。

Sub CopyValues()

Dim SheetName
Dim CellRef
Dim Value

With ThisWorkbook.Sheets("Sheet1")
SheetName = Range("A1").Value
CellRef = Range("B1").Value
Value = Range("C1").Value
End With

ThisWorkbook.Sheets(SheetName).Range(CellRef).Value = Value

End Sub

3 个答案:

答案 0 :(得分:0)

你几乎就在那里

Sub CopyValues()

Dim SheetName
Dim CellRef
Dim Value

With ThisWorkbook.Sheets("Sheet1")
    For i = 1 to 200
        SheetName = Range("A" & i).Value
        CellRef = Range("B" & i).Value
        Value = Range("C" & i).Value
        ThisWorkbook.Sheets(SheetName).Range(CellRef).Value = Value
    Next i
End With

End Sub

答案 1 :(得分:0)

Sub CopyValues()
    With ThisWorkbook.WorkSheets("Sheet1")
        For Each cell in .Range("A1", .Cells(.Rows.Count, 1).End(xlUp))
            ThisWorkbook.Sheets(cell.Value).Range(cell.Offset(,1).Formula = cell.Offset(,2).Formula
        Next
    End With
End Sub

答案 2 :(得分:0)

谢谢你们俩! 我在下面解决了我的问题。

Sub CopyValues()

Dim SheetName
Dim CellRef
Dim Value

With ThisWorkbook.Sheets("Sheet1")
    For i = Range("SheetNameRange").Row To Range("SheetNameRange").Row + Range("SheetNameRange").Rows.Count - 1
        SheetName = Range("A" & i).Value
        CellRef = Range("B" & i).Value
        Value = Range("C" & i).Value
        ThisWorkbook.Sheets(SheetName).Range(CellRef).Value = Value
    Next i
End With

End Sub