当前位置: 首页 > 知识库问答 >
问题:

尝试使用不同的工作簿复制和粘贴,但没有复制正确的值[重复]

葛阳
2023-03-14
Sub Approval_Flow()
Dim AppFlowWkb As Workbook, ConfigWkb As Workbook
Dim AppFlowWkst As Worksheet, ConfigWkst As Worksheet
Dim aCell As Range
Dim targetRng As Range



Set AppFlowWkb = Workbooks.Open("C:\Users\clara\Documents\Templates and Scripts\Flow Change.xlsx")
Set ConfigWkb = ThisWorkbook
Set AppFlowWkst = AppFlowWkb.Sheets("Editor")
Set ConfigWkst = ConfigWkb.Worksheets("Approval Flows")

With ConfigWkst
    'looking through each column value before moving on to next row
    For Each aCell In .Range("A1:K" & .UsedRange.Rows.Count)
        'if cell is highlighted, copy that row's column D value
        If Not aCell.Interior.Color = RGB(255, 255, 255) Then
            Range("D" & (aCell.row)).Copy
            'in appflow workbook, find empty row in column A and paste
            With AppFlowWkst
                Set targetRng = .Range("A" & Rows.Count).End(xlUp).Offset(1)
                targetRng.PasteSpecial xlPasteValues
            End With

            'Range("C" & (aCell.row)).Copy
            'With AppFlowWkst
                'Set targetRng = .Range("B" & Rows.Count).End(xlUp).Offset(1)
                'targetRng.PasteSpecial xlPasteValues

'once the rows' values have been pasted, move on to next row


        End If
    Next aCell

End With


End Sub

共有1个答案

姚星河
2023-03-14

在这一行的区域前面缺少.,所以它是从ActiveSheet复制的:

Range("D" & (aCell.Row)).Copy

它应该是.range(“d”&(acell.row)).copy

也就是说,您甚至不需要使用.copy.paste,因为您粘贴的只是值。直接分配它们就可以了:

With ConfigWkst
    For Each aCell In .Range("A1:K" & .UsedRange.Rows.Count)
        If Not aCell.Interior.Color = RGB(255, 255, 255) Then
            Set targetRng = .Range("A" & Rows.Count).End(xlUp).Offset(1)
            'Use a direct assignment.
            targetRng.Value = .Range("D" & (aCell.Row)).Value
        End If
    Next aCell
End With
 类似资料:
  • 我有一段巧妙的代码,它根据指定单元格中的特定文本输入隐藏/隐藏表。在Book1中的Sheet1中(比方说),如果我改变单元格A1中的文本(比方说文本是苹果、橘子等),我会在同一本书中的sheet2上得到某些表格(让我们称之为答题卡)。 现在,在另一本书中,我有一个表,其中包含所有可能的文本值(Apple,oranges,等等)。我想写一个代码,首先通过这个表,使值在book1.sheet1(“sh

  • 这应该真的很简单,但我一直在拖网论坛和答案数小时来寻找答案,但没有运气,所以我(不情愿地)创造了一个我自己的问题。 我要做的只是简单地创建一个新工作簿,并将另一个工作簿的范围粘贴到该工作簿中。听起来很简单..? 我原来的工作簿,让我们叫Book1。我试图创建一个新的工作簿,Book2,我将把单元格A1:B10的值复制到其中。 以下是我代码的一个版本(从第一册打开开始): 这会给出一个“Range类

  • 我写了下面的代码,并不断地看到。我试图克服这个问题,但似乎没有任何效果。我正试图从一个工作簿复制整个工作表,并将其粘贴到另一个工作簿中:

  • 标题或多或少概括了它。我试图使一个简单的宏打开,然后复制/粘贴数据从txt文件到一个新打开的工作簿。我有什么工作,但它粘贴到个人工作簿,在打开一个新的“book1”之前。我可以让它粘贴到Book1,但我只想让它粘贴到打开的第一个工作簿中,以防以后我想在同一个文件中添加更多数据。我对此相当陌生,所以任何帮助都将不胜感激!!

  • 我和几个同事每两周从导出的数据中格式化报告。我想创建一个宏,我可以分发给每个人,他们所做的就是在他们导出到本地机器的数据上尽可能少的步骤运行宏。我创建了一个宏,但我无法让它工作,因为目标工作簿(thisworkbook.activeSheet)是我的“personal.xlsb”(位于“xlstart”文件夹中并承载宏),而不是它需要的工作簿(每个人每周都会更改)。主要问题是,每当我运行宏时,来自

  • 我的宏有一个问题,我从一个工作表(a)运行它,我需要从工作表(B)复制单元格并粘贴到工作表(C),但我只能使它改变工作表,有没有办法做到这一点而不激活工作表???