【问题标题】:Excel VBA - Use cell ref listed in a cell within VBA Copy-Paste subroutineExcel VBA - 使用 VBA 复制粘贴子例程中单元格中列出的单元格引用
【发布时间】:2018-12-02 08:48:38
【问题描述】:

我是 Excel VBA 的新手。我试图创建一个子例程,从单元格 Sheet1 A2 复制内容并粘贴到单元格 Sheet2 A2,后者在单元格 Sheet1 B1 中指定。简单的例子。

Sheet1 A2 = 100
Sheet1 B1 = Sheet2 A2

我需要有关查看单元格 Sheet1 B1 的“Sheet2 A2”位置以将值 100 粘贴到的代码的帮助?

我当前的代码是:

Sub CopyRows()
    Sheets("Sheet1").Select
    ' Find the last row of data
    FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
    ' Loop through each row
    For x = 1 To FinalRow
        ' Decide if to copy based on column D
        ThisValue = Cells(x, 4).Value
        If ThisValue = "A" Then
            'Cells(x, 1).Resize(1, 33).Copy
            Cells(x, 1).Resize(1, 1).Copy
            Sheets("SheetA").Select
            NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
            Cells(NextRow, 1).Select
            ActiveSheet.Paste
            Sheets("Sheet1").Select
        ElseIf ThisValue = "B" Then
            Cells(x, 1).Resize(1, 1).Copy
            Sheets("SheetB").Select
            NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
            Cells(NextRow, 1).Select
            ActiveSheet.Paste
            Sheets("Sheet1").Select
        End If
    Next x
End Sub

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    我不完全确定您提供的代码与您的实际问题有何关联,但关于您的问题:

    "...从单元格 Sheet1 A2 复制内容并粘贴到单元格 Sheet2 A2,后者在单元格 Sheet 1 B1"中指定。。其中B2 的值被格式化为Sheet2 A2

    您可以拆分此单元格中的值,这将为您提供一个包含两个字符串的数组:拆分后的Sheet2A2。您可以使用这些值来设置您的范围对象。

    设置范围对象后,只需将硬编码范围 Worksheets("Sheet1").Range("A2") 中的值传递到 B2 中提供的动态范围。

    Dim wsSource As Worksheet, rawRangeArr() As String, rng As Range
    Set wsSource = ThisWorkbook.Worksheets("Sheet1")
    rawRangeArr = Split(wsSource.Range("B1").Value)
    Set rng = ThisWorkbook.Worksheets(rawRangeArr(0)).Range(rawRangeArr(1))
    
    rng.Value = wsSource.Range("A2").Value
    

    【讨论】:

      【解决方案2】:

      从单元格 Sheet1 A2 复制内容并粘贴到单元格 Sheet2 的子例程 A2,后者在单元格表 1 B1 中指定

      如下:

      With Sheets("Sheet1")
          Range(Replace(.Range("B1").Text, " ", "!")).Value = .Range("A2").Value
      End With
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多