Excel-VBA:不同Sheet间的列、行复制

'Sheet1中先在第3列加入一个空列,格式参照右侧,参照左侧用xlFormatFromLeftOrAbove
Sheet1.Columns(3).Insert , CopyOrigin:=xlFormatFromRightOrBelow

'将Sheet2中的第3列复制到Sheet1中第3列
Sheet2.Columns(3).Copy Destination:=Sheet1.Columns(3)

'如果要进行行的复制,将Columns变为Rows

'如果要多列复制,可以参考下面的代码
Sheet1.Columns("C:D").Insert , CopyOrigin:=xlFormatFromRightOrBelow
Sheet2.Columns("C:D").Copy Destination:=Sheet1.Columns("C:D")

 

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用VBA语句按照Excel某不同值生成不同sheet。以下是一个示例代码,可以根据"A"不同值生成不同sheet: ```vba Sub GenerateSheets() Dim ws As Worksheet Dim newWs As Worksheet Dim lastRow As Long Dim cellValue As Variant ' 读取"A"最后一 lastRow = Cells(Rows.Count, 1).End(xlUp).Row ' 创建主工作表 Set ws = ThisWorkbook.Worksheets.Add ws.Name = "Main" ' 遍历"A"的每个单元格 For Each cell In Range("A1:A" & lastRow) cellValue = cell.Value ' 检查当前单元格的值是否已存在为sheet名字的工作表 On Error Resume Next Set newWs = ThisWorkbook.Worksheets(cellValue) On Error GoTo 0 ' 如果该工作表不存在,则创建新工作表并命名为当前单元格的值 If newWs Is Nothing Then Set newWs = ThisWorkbook.Worksheets.Add newWs.Name = cellValue End If ' 将当前单元格的内容复制到新工作表中 ws.Rows(cell.Row).Copy newWs.Rows(newWs.Cells(Rows.Count, 1).End(xlUp).Row + 1) Next cell ' 删除主工作表 Application.DisplayAlerts = False ' 禁止删除确认提示框 ws.Delete Application.DisplayAlerts = True MsgBox "生成工作表完成!" End Sub ``` 你可以将这段代码复制到VBA编辑器中的一个模块中(按下`Alt+F11`打开VBA编辑器),然后在Excel中运这个宏。运后,它将按照"A"不同值生成不同的工作表,并将对应的复制到相应的工作表中。 请确保在运这个宏之前,你已经保存了你的工作簿,因为它会对工作簿进修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值