首页 > 解决方案 > 将特定列复制到另一个工作表

问题描述

我有一个有 7 列的主表,代号为“ShNote”,我想运行一个代码,在最后一列(“I”)上找到值 20。之后,它将自动复制客户的名称(D 列)及其值(基于条件必须等于 20)在 I 列。我希望宏将复制这些数据并粘贴到另一张工作表上,代号为 ShPPT,在C & D 列,起始行 = 6。

通常,我有 4 个客户,为什么它只复制了 1 个客户你能帮我看一下代码吗?

我正在阅读一些博客,您可以使用数组来优化代码以提高效率

Ps:这只是我的代码的开头,在第一列,我正在寻找这个值范围 1. 20 2. 17-20 3. 15 - 17 4. 11 - 15 5. < 11

每次我的宏运行时,它都会自动复制客户端的名称及其相应的值。

Sub NoteLog()

'1. Copy the client's name and its note ranked by 4 particular conditions (20;17-20;15-17;11-15;<11)

Dim finalrow As Long, c As Long, i As Long, rowppt As Long, colppt As Long

finalrow = ShNote.Range("I" & Rows.Count).End(xlUp).Row
rowppt = ShPPT.Cells(Rows.Count, 1).End(xlUp).Row
colppt = ShPPT.Cells(Rows.Count, 1).End(xlUp).Row

For c = 6 To finalrow
    If ShNote.Range("I" & c).Value = 20 Then
    ShNote.Range("D" & c).Copy
    ShPPT.Cells(rowppt + 6, 3).PasteSpecial xlPasteValues
    ShNote.Range("I" & c).Copy
    ShPPT.Cells(colppt + 6, 4).PasteSpecial xlPasteValues
    End If
Next c
  rowppt = rowppt + 1
  colppt = colppt + 1

结束子

标签: excelvba

解决方案


推荐阅读