当前位置:编程学习 > VB >>

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

把一个表格中选定的行点击触发钮后可以通过设计的选项框里的选项复制到另一个表格中的不同的sheet中,因为表格很多翻来翻去很容易出错,所以就想要编个宏。不要复制黏贴。 --------------------编程问答-------------------- 先录制一个手工复制粘贴的宏(得到一个方法),
然后将你需要用选项选择的部分改为方法的参数,
按钮事件中调用这个方法。 --------------------编程问答-------------------- 重点不是复制。。是如何黏贴到另一个工作表中的不同sheet里。。。手动黏贴翻来翻去很复杂的所以想有没有更简单,可以有个选项框啊~选择哪个工作表的文件名,就可以粘到里面去。。不用翻来翻去。。有么。。。 --------------------编程问答-------------------- 你可以新建个工具栏,工具栏加下拉框,把每个sheet的名字加到下拉框里,粘贴的时候从下拉框里选sheet。 --------------------编程问答-------------------- 是不是打开后还是需要黏贴的操作,能不能把在选择sheet确认的同时直接黏贴在那个表格中?省去打开黏贴的操作?主要就是想省去excel表之间的转换 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答--------------------
这是之前人家帮我写的代码,只能黏贴到同一个表里,想把红字部分改成复制到另一个表里的不同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
--------------------编程问答--------------------
    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
--------------------编程问答--------------------  
xlbook.Worksheets("Sheet2").Cells(i, j) = xlbook.Worksheets("Sheet1").Cells(i, j)
加上2个循环,搞定 --------------------编程问答-------------------- 加一个 Sheets 的循环就可以了。
列循环不如整行复制效率高。 --------------------编程问答--------------------
引用 楼主 u010608364 的回复:
把一个表格中选定的行点击触发钮后可以通过设计的选项框里的选项复制到另一个表格中的不同的sheet中,因为表格很多翻来翻去很容易出错,所以就想要编个宏。不要复制黏贴。


那就先录制一个宏看看代码, 精简一下, 修改一下也就差不多了.
补充:VB ,  VBA
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,