【发布时间】:2016-04-08 19:33:39
【问题描述】:
我是 Excel VBA 的新手,需要一些帮助。我有一个数据列表,我想根据 B 列中的数据将其复制到新工作表中,并将整行复制到同名的新工作表中。
Column B
2nd Black
1st Black
1st Brown
2nd Brown
3rd Brown
我已经更改了我的代码并想出了这个。一切正常。感谢您的帮助。
Sub create_role()
Dim c As Range
Dim j As Integer
Dim k As Integer
Dim l As Integer
Dim m As Integer
Dim Source As Worksheet
Dim Target As Worksheet
Set Source = ActiveWorkbook.Worksheets("master")
j = 11
k = 11
l = 11
m = 11
For Each c In Source.Range("b11:b110")
If (c = "5th Black" Or c = "4th Black" Or c = "3rd Black" Or c = "2nd Black" Or c = "1st Black" Or c = "Jr. Black") Then
Set Target = ActiveWorkbook.Worksheets("BLACK")
Source.Rows(c.Row).Copy Target.Rows(j)
ElseIf c = "1st Brown" Then
Set Target = ActiveWorkbook.Worksheets("1ST BROWN")
Source.Rows(c.Row).Copy Target.Rows(k)
k = k + 1
ElseIf c = "2nd Brown" Then
Set Target = ActiveWorkbook.Worksheets("2ND BROWN")
Source.Rows(c.Row).Copy Target.Rows(l)
l = l + 1
ElseIf c = "3rd Brown" Then
Set Target = ActiveWorkbook.Worksheets("3RD BROWN")
Source.Rows(c.Row).Copy Target.Rows(m)
m = m + 1
End If
j = j + 1
Next c
结束子
【问题讨论】:
-
我认为你有
If c.Value = Worksheet.CodeName Then倒退。你也没有定义Target? -
另外,我认为您的计数器
j需要在End If之后但在Next之前发生。 -
@findwindow 谢谢。既然有 3 个,我该如何定义目标?
-
我切换了 c.value = worksheet.codename,但我仍然遇到未定义对象的错误。
-
你需要声明 3 个不同的目标。当我向后说时,我的意思是你的逻辑。您需要遍历您的代号,而不是范围。