把一个表格中的内容复制到另一个表格中的不同sheet中

u010608364 2013-05-07 10:22:52
把一个表格中选定的行点击触发钮后可以通过设计的选项框里的选项复制到另一个表格中的不同的sheet中,因为表格很多翻来翻去很容易出错,所以就想要编个宏。不要复制黏贴。
...全文
2260 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
熊孩子开学喽 2013-06-20
  • 打赏
  • 举报
回复
引用 楼主 u010608364 的回复:
把一个表格中选定的行点击触发钮后可以通过设计的选项框里的选项复制到另一个表格中的不同的sheet中,因为表格很多翻来翻去很容易出错,所以就想要编个宏。不要复制黏贴。
那就先录制一个宏看看代码, 精简一下, 修改一下也就差不多了.
Tiger_Zhao 2013-05-09
  • 打赏
  • 举报
回复
加一个 Sheets 的循环就可以了。
列循环不如整行复制效率高。
u010608364 2013-05-08
  • 打赏
  • 举报
回复
重点不是复制。。是如何黏贴到另一个工作表中的不同sheet里。。。手动黏贴翻来翻去很复杂的所以想有没有更简单,可以有个选项框啊~选择哪个工作表的文件名,就可以粘到里面去。。不用翻来翻去。。有么。。。
Tiger_Zhao 2013-05-08
  • 打赏
  • 举报
回复
先录制一个手工复制粘贴的宏(得到一个方法),
然后将你需要用选项选择的部分改为方法的参数,
按钮事件中调用这个方法。
u010621161 2013-05-08
  • 打赏
  • 举报
回复
xlbook.Worksheets("Sheet2").Cells(i, j) = xlbook.Worksheets("Sheet1").Cells(i, j) 加上2个循环,搞定
Tiger_Zhao 2013-05-08
  • 打赏
  • 举报
回复
    If temp = temp1 Then
Sheets(activesheetname).Rows(temprow1 & ":" & temprow1).Select
Selection.Copy

Dim i As Long
For i = 1 To Sheets.Count
If Sheets(i).Name <> activesheetname Then

tepmrowA = 1
Sheets(i).Select
again1:
If Sheets(i).Cells(tepmrowA, 1).Value = "" Then
Sheets(i).Cells(tepmrowA, 1).Activate
ActiveSheet.Paste
Else
tepmrowA = tepmrowA + 1
GoTo again1
End If

End If
Next

Sheets(activesheetname).Select
Application.CutCopyMode = False
End If
u010608364 2013-05-08
  • 打赏
  • 举报
回复
这是之前人家帮我写的代码,只能黏贴到同一个表里,想把红字部分改成复制到另一个表里的不同sheets里(大概有27个sheets),能人工选择确认所要的sheet后直接就黏贴到那个sheet里么? Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) activesheetname = ActiveSheet.Name temp1 = ActiveCell.Value temprow1 = ActiveCell.Row temp = InputBox("确认值", "数值", temp1) If temp = temp1 Then Sheets(activesheetname).Rows(temprow1 & ":" & temprow1).Select Selection.Copy tepmrowA = 1 Sheets("need").Select again1: If Sheets("need").Cells(tepmrowA, 1).Value = "" Then Sheets("need").Cells(tepmrowA, 1).Activate ActiveSheet.Paste Else tepmrowA = tepmrowA + 1 GoTo again1 End If Sheets(activesheetname).Select Application.CutCopyMode = False End If End Sub
worldy 2013-05-08
  • 打赏
  • 举报
回复
6L代码有点问题:
Private Sub test()
Dim s1 As Worksheet
Dim s2 As Worksheet
Dim Rng As Range
Set s1 = ThisWorkbook.Worksheets("sheet1")
Set Rng = Selection
Rng.Copy


Set s2 = ThisWorkbook.Worksheets("sheet2")
s2.Activate
s2.Cells(20, 4).Select

s2.Paste

s1.Activate
End Sub

选择区必须是方形区域,不要选择整行或整列
worldy 2013-05-08
  • 打赏
  • 举报
回复
可以指定粘贴到哪个单元:

Private Sub test()
Dim s1 As Worksheet
Dim s2 As Worksheet
Dim Rng As Range

Set s1 = ThisWorkbook.Worksheets("sheet1")
Set Rng = Selection
Rng.Copy


Set s2 = ThisWorkbook.Worksheets("sheet2")
s2.Activate
Set Rng = s2.Cells(1, 1)
Rng.Activate
s2.Paste

s1.Activate
End Sub
worldy 2013-05-08
  • 打赏
  • 举报
回复
可以:
Private Sub test()
Dim s1 As Worksheet
Dim s2 As Worksheet
Dim Rng As Range

Set s1 = ThisWorkbook.Worksheets("sheet1")
Set Rng = Selection
Rng.Copy

Set s2 = ThisWorkbook.Worksheets("sheet2")
s2.Activate
s2.Paste

s1.Activate
End Sub
u010608364 2013-05-08
  • 打赏
  • 举报
回复
是不是打开后还是需要黏贴的操作,能不能把在选择sheet确认的同时直接黏贴在那个表格中?省去打开黏贴的操作?主要就是想省去excel表之间的转换
dsd999 2013-05-08
  • 打赏
  • 举报
回复
你可以新建个工具栏,工具栏加下拉框,把每个sheet的名字加到下拉框里,粘贴的时候从下拉框里选sheet。

2,461

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧