【发布时间】:2016-12-23 01:50:23
【问题描述】:
我有一个带有两张纸的 excel 文档。表 1 具有 A-Q 列,表 2 具有 A-H 列。我需要的是一个代码,如果满足条件,它将连续将信息从表 1 复制到表 2。标准是 L 列(表 1)中的“已授予”一词。 也可以只复制行中的特定列吗?
A B C D E F G H I J K L M N
X X Awarded X X
如果“已授予”一词在 L 列中,我只想从行中复制 C、D、M 和 N 列。此信息将按以下方式复制到工作表 2
Sheet 1 Sheet 2
D --> B
C --> C
M --> D
N --> F
我希望我是清楚的。提前感谢,如果我需要澄清,请告诉我!+
这是我目前拥有的代码,它可以工作。唯一的问题是,当我只想复制 D、C、M 和 N 行时,它会将整行信息复制到工作表 2 中。
Sub testing()
Set a = Sheets("Sheet1")
Set b = Sheets("Sheet2")
Dim d
Dim j
d = 1
j = 2
Do Until IsEmpty(a.Range("L" & j))
If a.Range("L" & j) = "Awarded" Then
d = d + 1
b.Rows(d).Value = a.Rows(j).Value
End If
j = j + 1
Loop
End Sub
【问题讨论】:
-
THIS 将帮助您入门。
-
复制到工作表 2 的同一行?
-
到目前为止,我尝试了一个有效的 =IF 公式,但是当我有多个行符合条件时出现问题。该公式将不断复制符合条件的第一行数据行。
-
我也不打算复制整行。该行中只有 D、C、M 和 N 列。我不想将其余列复制到工作表 2 中。我发现其他代码有效但复制了整行数据。
-
遍历 Sheet1 中的所有行。如果 L 列被“授予”,则将 Sheet1 中的 C、D、M、N 值复制到 Sheet2 中的 B、C、D、F (类似于
Worksheets(“Sheet2”).Cells(k, 2).Value= Worksheets(“Sheet1”).Cells(i, 3).Value;i 用于 Sheet1 数据的循环,k 用于跟踪行Sheet2.(用于将 Sheet1 的 C 列(col #3)复制到 Sheet2 中的 B(col #3))。