Excel 根据单元格值复制到特定工作表
Posted
技术标签:
【中文标题】Excel 根据单元格值复制到特定工作表【英文标题】:Excel copy to specific sheet depending on cell value 【发布时间】:2017-05-05 12:03:18 【问题描述】:我目前正在尝试将前页中的文本复制到变体页中。
我想要的是将单元格 J19、J20、J21 复制到不同工作表的单元格 A1、B1、C1 中。 J19 决定复制到哪个工作表,因为每个 agent 都有自己的工作表,其中有一个宏将代理名称拉入到 J19 上的数据验证中。
J19 = 特工姓名
J20 = 假期开始日期
J21 = 假期结束日期
如何更改Set wsDestin = Sheets("Agent1")
,使其查看 J19 来决定目标单元格。
Sub CopyColumnP()
Dim wsSource As Worksheet
Dim wsDestin As Worksheet
Dim lngDestinRow As Long
Dim rngSource As Range
Dim rngCel As Range
Set wsSource = Sheets("Front")
Set wsDestin = Sheets("Agent1")
With wsSource
Set rngSource = .Range(.Cells(19, "J"), .Cells(.Rows.Count, "J").End(xlUp))
End With
For Each rngCel In rngSource
If rngCel.Value = "Design" Then
With wsDestin
lngDestinRow = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).Row
rngCel.EntireRow.Copy Destination:=wsDestin.Cells(lngDestinRow, "A")
End With
End If
Next rngCel
End Sub
【问题讨论】:
Cells("J19").Value 真的那么简单吗?我认为这会更复杂@Luuklag 【参考方案1】:这很简单:
Set wsDestin = ThisWorkbook.Worksheets(wsSource.Range("J19").Value)
要检查工作表是否存在结束防止错误使用:
On Error Resume Next
Set wsDestin = ThisWorkbook.Worksheets(wsSource.Range("J19").Value)
If Not Err.Number = 0 Then
MsgBox "Sheet '" & wsSource.Range("A1").Value & "' not found."
Exit Sub
End If
On Error GoTo 0
或者,如果 J19 不包含目标工作表名称,但您需要根据 J19 的值选择工作表,则使用:
Select Case wsSource.Range("J19").Value
Case "AAA" 'if value of J19 is AAA select sheet A
Set wsDestin = Sheets("A")
Case "B", "C" 'if value of J19 is B or C select sheet BC
Set wsDestin = Sheets("BC")
Case Else
MsgBox "no corresponding worksheet found."
End Select
【讨论】:
如果我是正确的那将替换J19
的内容?我希望代码查看J19
来决定将哪个工作表从J19,J20,21
复制并粘贴到J19
中工作表名称的A1,A2,A3
。
等号左边将得到等号右边的值。您可能希望在此处明确引用工作簿。
@JackBrownridge 如果 J19 不包含目标工作表名称,但您需要根据 J19 的值选择工作表,请使用我答案的第二部分。
@Peh yes J19 包含目标工作表名称,因为工作表被拉入该单元格的数据验证中。
@JackBrownridge 如果您收到错误 9,则名为 J19 中的值的工作表不存在以上是关于Excel 根据单元格值复制到特定工作表的主要内容,如果未能解决你的问题,请参考以下文章
Excel VBA根据条件从一个工作表复制到其他工作表特定单元格
如何在 MS Excel 中将特定数据从一个 Excel 工作表传输到另一个工作表?
在 Excel 中将某些特定单元格从一个工作表复制到另一个工作表的 VBA 可能是啥?
使用 Python(和 DataNitro)将单元格从一个 Excel 工作簿中的特定工作表复制到另一个 Excel 工作簿中的特定工作表