VBA从Sheet1+;中的唯一列值创建新图纸;带来相邻行信息
VBA根据Sheet1+中的唯一列值创建新图纸,并覆盖相邻行信息 Hey all-我正在尝试创建一个脚本,该脚本标识列E中的唯一值(数据从第1行开始),基于这些唯一值创建一个新的工作表(也根据值命名工作表),并在创建的新工作表中提供列a、C、D和H中对应行的信息- 我找到了这个YouTube视频,它显示了这个过程,但不是脚本识别唯一的值,你必须手动输入它正在寻找的关键字,它只运行一次。我无法让“for循环”正常运行 任何帮助都将不胜感激VBA从Sheet1+;中的唯一列值创建新图纸;带来相邻行信息,vba,excel,Vba,Excel,VBA根据Sheet1+中的唯一列值创建新图纸,并覆盖相邻行信息 Hey all-我正在尝试创建一个脚本,该脚本标识列E中的唯一值(数据从第1行开始),基于这些唯一值创建一个新的工作表(也根据值命名工作表),并在创建的新工作表中提供列a、C、D和H中对应行的信息- 我找到了这个YouTube视频,它显示了这个过程,但不是脚本识别唯一的值,你必须手动输入它正在寻找的关键字,它只运行一次。我无法让“for循环”正常运行 任何帮助都将不胜感激 Private Sub CommandButton1_C
Private Sub CommandButton1_Click()
J = "Test"
Worksheets.Add().Name = J
Worksheets("Sheet1").Rows(1).Copy
Worksheets(J).Activate
ActiveSheet.Paste
Worksheets("Sheet1").Activate
a = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To a
If Worksheets("Sheet1").Cells(i, 5).Value = "XXXX" Then
Worksheets("Sheet1").Rows(i).Copy
Worksheets(J).Activate
b = Worksheets(J).Cells(Rows.Count, 1).End(xlUp).Row
Worksheets(J).Cells(b + 1, 1).Select
ActiveSheet.Paste
Worksheets("Sheet1").Activate
End If
Next
Application.CutCopyMode = False
ThisWorkbook.Worksheets("Sheet1").Cells(1, 1).Select
End Sub
大概是这样的:
Private Sub CommandButton1_Click()
Dim sht As Worksheet, c As Range, i As Long
Set sht = ThisWorkbook.Worksheets("Sheet1")
For i = 2 To sht.Cells(Rows.Count, 1).End(xlUp).Row
CopyDestination(sht.Cells(i, 5).Value).Resize(1, 5).Value = _
Array(sht.Cells(i, 5).Value, sht.Cells(i, 1).Value, _
sht.Cells(i, 3).Value, sht.Cells(i, 4).Value, _
sht.Cells(i, 8).Value)
Next
Application.CutCopyMode = False
End Sub
'Find the next "paste" destination on the appropriate sheet named "v"
' If sheet doesn't exist, create it
Function CopyDestination(v) As Range
Dim sht As Worksheet
On Error Resume Next
Set sht = ThisWorkbook.Sheets(v)
On Error GoTo 0
If sht Is Nothing Then '<< no existing matching sheet
With ThisWorkbook
Set sht = .Sheets.Add(after:=.Sheets(.Sheets.Count))
End With
sht.Name = v '<<< assumes "v" is valid as a worksheet name...
End If
'find the first empty cell in Col A
Set CopyDestination = sht.Cells(sht.Rows.Count, 1).End(xlUp).Offset(1, 0)
End Function
Private子命令按钮1\u单击()
尺寸sht作为工作表,c作为范围,i作为长度
Set sht=此工作簿。工作表(“表1”)
对于i=2至短单元格(Rows.Count,1)。结束(xlUp)。行
CopyDestination(短单元格(i,5).Value)。调整大小(1,5)。Value=_
数组(短单元格(i,5).值,短单元格(i,1).值_
短单元格(i,3).值,短单元格(i,4).值_
短单元格(i,8).值)
下一个
Application.CutCopyMode=False
端接头
'在名为“v”的相应工作表上查找下一个“粘贴”目的地'
'如果工作表不存在,请创建它
功能CopyDestination(v)作为范围
将sht变暗为工作表
出错时继续下一步
Set sht=ThisWorkbook.Sheets(v)
错误转到0
如果sht为Nothing,则“请将您的代码(通过在{}代码标记之间插入格式)添加到原始帖子中!”!描述你说“你不能让for循环正常运行”的意思