Excel 将数据复制到不同的命名多张图纸中
亲爱的 我是一个初学者,尝试编写一个宏,它允许首先根据条件删除行,然后根据第一个主工作表中的条件创建新工作表,并将第一个主工作表中的数据添加到多个命名工作表中Excel 将数据复制到不同的命名多张图纸中,excel,vba,Excel,Vba,亲爱的 我是一个初学者,尝试编写一个宏,它允许首先根据条件删除行,然后根据第一个主工作表中的条件创建新工作表,并将第一个主工作表中的数据添加到多个命名工作表中 根据条件删除行(运行正常) 根据第一张主图纸中的条件创建新图纸(运行正常) 添加第一个主工作表中的数据(恒定范围I4:I6) 将多个命名图纸合并到所有图纸中的A1:A3(由该宏创建)。不幸的是,我不知道如何做到这一点:-( 你能帮我一下吗 Private Sub CommandButton1_Click() Dim lastr
- 根据条件删除行(运行正常)
- 根据第一张主图纸中的条件创建新图纸(运行正常)
- 添加第一个主工作表中的数据(恒定范围I4:I6) 将多个命名图纸合并到所有图纸中的A1:A3(由该宏创建)。不幸的是,我不知道如何做到这一点:-(
Private Sub CommandButton1_Click()
Dim lastrow As Long, x As Long
lastrow = Cells(Rows.Count, "A").End(xlUp).Row
For x = lastrow To 1 Step -1
If UCase(Cells(x, 3).Value) = "0" And _
UCase(Cells(x, 6).Value) = "0" Then
Rows(x).Delete
End If
Next
lastcell = ThisWorkbook.Worksheets("Obratova predvaha").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lastcell
With ThisWorkbook
newname = ThisWorkbook.Worksheets("Obratova predvaha").Cells(i, 1).Value
.Sheets.Add after:=.Sheets(.Sheets.Count)
ActiveSheet.Name = newname
End With
Next
ThisWorkbook.Worksheets("Obratova predvaha").Activate
ThisWorkbook.Worksheets("Obratova predvaha").Cells(1, 1).Select
End Sub
不太清楚您的描述,但您可以尝试以下方法: 编辑添加工作表变量,并通过隐式假设新工作表为活动工作表,防止在添加新工作表和写入新工作表之间出现任何(可能?)延时错误行为:
Option Explicit
Private Sub CommandButton1_Click()
Dim lastrow As Long, i As Long
Dim newSheet As Worksheet
With Worksheets("Obratova predvaha")
lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = lastrow To 1 Step -1
If UCase(.Cells(i, 3).Value) = "0" And UCase(.Cells(i, 6).Value) = "0" Then .Rows(i).Delete
Next
lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 2 To lastrow
Set newSheet = Sheets.Add(after:=Sheets(Sheets.Count)) ' add a new sheet and hold its reference in newSheet variable
newSheet.Range("A1:A3").Value = .Range("I4:I6").Value ' copy referenced sheet I4:I6 values into newly added sheet cells A1:A3
newSheet.Name = .Cells(i, 1).Value ' change the name of newly added sheet
Next
End With
End Sub
Thanx。不幸的是,它不能正常运行(宏将数据填入“主工作表”。我只需要将数据从主工作表(名称“Obratova predvaha”)复制到“主工作表”(即“Obratova predvaha”工作表)中除“Obratova predvaha”之外的所有其他工作表中已经存在,否则您如何将它们的值从那里复制到其他工作表?对不起…我需要复制的数据已经存在于主工作表中如果您需要取消它们,请添加
.Range(“I4:I6”)CytCyp< <代码> >在代码>结束之前损坏< /代码>。如果我的答案解决了您的问题,那么您可以考虑将它标记为接受。谢谢您仍然不能正常工作……当我使用范围(“A1:A3”)。value =范围(“I4:I6”)。这也是不需要的,我只需要将数据从主工作表(“Obratova predvaha”)复制到其他工作表中(2,3…xxx=但命名不同,而不仅仅是Sheet2、Sheet3等)。