精华内容
下载资源
问答
  • vba代码实际如下, 是分两步走的 Range(“H5”).Select Selection.Copy Range(“K5”).Select Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme ’ 13 Selection.PasteSpecial Paste...

    EXCEL按值和源格式粘贴的时候 包含了按值和数字格式 + 外观样式(主题)
    vba代码实际如下, 是分两步走的
    Range(“H5”).Select
    Selection.Copy
    Range(“K5”).Select
    Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme ’ 13
    Selection.PasteSpecial Paste:=xlPasteValues ’ -4163

    展开全文
  • VBA学习之复制粘贴

    2019-09-30 23:30:05
    1 建立测试文件夹 每张表的内容如下: 在文件夹里建立5个相同内容的副本: 2 百度网上代码进行试用 ...Worksheets(Array("C:\Users\gui\Desktop\工作\VBA学习\数据\复制粘贴测试\test.xlsx",x_ "C:\...

    2019/9/30

    1 建立测试文件夹

    每张表的内容如下:
    在这里插入图片描述
    在文件夹里建立5个相同内容的副本:

    在这里插入图片描述

    2 百度网上代码进行试用

    代码1(原代码链接):

    Sub MoveSheets()
     
    '在下面Array中列出所有需要复制的工作表的名称
    '换行符为:空格+_
    
    Worksheets(Array("C:\Users\gui\Desktop\工作\VBA学习\数据\复制粘贴测试\test.xlsx",x_
      "C:\Users\gui\Desktop\工作\VBA学习\数据\复制粘贴测试\test - 副本.xlsx", "C:\Users\gui\Desktop\工作\VBA学习\数据\复制粘贴测试\test - 副本(2).xlsx",  _
      "C:\Users\gui\Desktop\工作\VBA学习\数据\复制粘贴测试\test - 副本(3).xlsx", _
      "C:\Users\gui\Desktop\工作\VBA学习\数据\复制粘贴测试\test - 副本(4).xlsx",  _
      "C:\Users\gui\Desktop\工作\VBA学习\数据\复制粘贴测试\test - 副本(5).xlsx")).Copy
     
    Set wbNew = ActiveWorkbook
     
    With wbNew
     
        ActiveWorkbook.SaveAs Filename:="C:\Users\gui\Desktop\工作\VBA学习\数据\复制粘贴测试\" & "合并.xlsx"
     
        .Close
     
    End With
     
    End Sub
    
    

    出现错误
    在这里插入图片描述
    时间:2019/10/5
    发现自己对上面代码中的工作表错理解为工作簿

    Sub MoveSheets()
     
    '在下面Array中列出所有需要复制的工作表的名称
    '换行符为:空格+_
    
    Worksheets(Array("Sheet1", "Sheet2")).Copy
     
    Set wbNew = ActiveWorkbook
     
    With wbNew
     
        ActiveWorkbook.SaveAs Filename:="C:\Users\gui\Desktop\工作\VBA学习\数据\复制粘贴测试\" & "合并.xlsx"
     
        .Close
     
    End With
     
    End Sub
    

    上面这段代码的实际作用:选择自己想要的sheet(工作表)复制粘贴到一个新的工作簿

    学习目标1

    将一个文件夹中的所有工作簿复制粘贴到一个新的工作簿中

    学习链接1
    学习链接2

    成功!!!
    重复上面步骤

    Public Sub 一键获取本文件夹工作表()
    
    Application.ScreenUpdating = False
    
    Dim f As String, i As Integer '定义变量
    
    Dim wb As Excel.Workbook  '定义工作簿,也就是最后合并的表格
    
    Dim sh, sh1 As Excel.Worksheet '定义工作表
    
    Set sh1 = ThisWorkbook.Worksheets("导入清单")  'sh1为导入清单sheet
    
    If Range("a65536").End(xlUp).Row > 1 Then 'A列最后一个有数据的单元所在的行数orA65535单元格向上,最后一个非空的单元格的行号
    
    sh1.Range("a2:b" & Range("a65536").End(xlUp).Row).Clear
    
    End If
    
    f = Dir(ThisWorkbook.Path & "\*xls*") '获取地址
    
    Do While f <> "" '地址不为空时执行,<>在VBA在是不等于的意思
    
    If f <> ThisWorkbook.Name Then
    
    Set wb = Workbooks.Open(ThisWorkbook.Path & "\" & f)
    
    For i = 1 To Sheets.Count
    
    sh1.Range("a" & sh1.Range("a65536").End(xlUp).Row + 1) = wb.Name '导入清单sheet工作簿名称
    
    sh1.Range("b" & sh1.Range("b65536").End(xlUp).Row + 1) = Sheets(i).Name '导入清单sheet中工作表名称
    
    Next
    
        Worksheets.Copy Before:=Workbooks(ThisWorkbook.Name).Sheets(1)
    
        wb.Close True
    
        End If
    
        f = Dir
    
    Loop
    
    sh1.Select
    
    Application.ScreenUpdating = True
    
    MsgBox "已为您成功导入" & Sheets.Count - 1 & "张工作表" '提示框内容
    
    End Sub
    

    学习目标2

    将所有工作簿中的工作表复制粘贴到同一个sheet中
    学习链接3

    'VBA for merge excel files,.just support for Excel 2007
    'Excel 2003 need change the codes
    'Author:naiveloafer
    'Date:2012-04-29
    Sub naiveloafer()
    Dim fs, f, f1, fc, s, x, rowss, columnss
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder("C:\Users\gui\Desktop\工作\VBA学习\数据\复制粘贴测试\") '复制对象的路径
    Set fc = f.Files
    x = 1
     
    For Each f1 In fc
     
    If Right(f1.Name, 4) = "xlsx" Then
    Workbooks.Open (f1.Path)
    rowss = Workbooks(f1.Name).Sheets(1).Range("A65536").End(xlUp).Row
    columnss = Workbooks(f1.Name).Sheets(1).Columns.Count
     
    Workbooks(f1.Name).Sheets(1).Range("A1:z" & CStr(rowss)).Copy
    Workbooks(1).Activate
    Workbooks(1).Sheets(1).Range("A" & CStr(x) & ":z" & CStr(x + rowss)).Select
    Workbooks(1).Sheets(1).Paste
    Application.CutCopyMode = False
     
    x = x + rowss
    Workbooks(f1.Name).Close savechanges:=False
    End If
     
    Next
     
    End Sub
    
    
    展开全文
  • 有时,我们需要将一个工作簿里的每一张工作表,另存为单独的工作薄;...,请看动画:动画中所粘贴代码如下:Sub Newbooks() 'EH技术论坛~VBA编程学习与实践 Dim sht As Worksheet, mypath$ With Applic...

    有时,我们需要将一个工作簿里的每一张工作表,另存为单独的工作薄;如果只是一两张工作表需要这样处理,我们手工操作就挺好的,可如果是若干张,手工操作……岂不是太朴素?

    如果使用VBA来处理,这事就简单了。

    怎么个简单法呢?,请看动画:

    58742cf90c9b9e73cf1109a2c664366a.gif

    动画中所粘贴的代码如下:


    Sub Newbooks()

    'EH技术论坛~VBA编程学习与实践

    Dim sht As Worksheet, mypath$

    With Application.FileDialog(msoFileDialogFolderPicker)

    '选择保存工作薄的文件路径

    .AllowMultiSelect = False

    '不允许多选

    If .Show Then

    mypath = .SelectedItems(1)

    Else

    Exit Sub

    '如果没有选择保存路径,则退出程序

    End If

    End With

    If Right(mypath, 1) <> "" Then mypath = mypath & ""

    Application.DisplayAlerts = False

    '取消显示系统警告消息,避免重名工作簿无法保存。当有重名工作簿时,会直接覆盖保存。

    Application.ScreenUpdating = False

    '取消屏幕刷新

    For Each sht In Worksheets

    '遍历工作表

    sht.Copy

    '复制工作表,工作表单纯复制后,会成为活动工作薄

    With ActiveWorkbook

    .SaveAs mypath & sht.Name, xlWorkbookDefault

    '保存活动工作薄到指定路径下,以默认文件格式

    .Close True '关闭工作薄并保存

    End With

    Next

    MsgBox "处理完成。

    展开全文
  • VBA用Copy方法进行复制粘贴,往往会导致粘贴的数据没有了行高和列宽。那么,当我们要进行复制粘贴时,如何保证粘贴的数据保留原有的格式(包括行高列宽都不能变)。 笔者以一个模板设计为例进行说明。 模板表如图1 所...

    Excel VBACopy方法进行复制粘贴,往往会导致粘贴的数据没有了行高和列宽。那么,当我们要进行复制粘贴时,如何保证粘贴的数据保留原有的格式(包括行高列宽都不能变)

    笔者以一个模板设计为例进行说明。

    模板表如图1 所示。

    Excel <wbr>VBA技巧 <wbr>复制粘贴保留行高列宽等所有格式的方法

    1

    根据模板表生成表格的效果如图2所示。

    Excel <wbr>VBA技巧 <wbr>复制粘贴保留行高列宽等所有格式的方法

    2

    使用Copy方法复制粘贴,代码如下所示:

    Sub Copy复制粘贴困惑()

        Dim x As Integer

       

        With Sheet2

            '清空数据

            .UsedRange.Clear

            '恢复标准列宽

            .Columns.ColumnWidth = .StandardWidth

            '恢复标准行高

            .Rows.RowHeight = .StandardHeight

        End With

       

        For x = 1 To 30 Step 15

            '复制大标题区

            Sheet1.Rows("3:4").Copy Sheet2.Rows(x)

           

            '小标题区

            '横向复制1/纵向复制4---粘贴份数由扩展区域Resize(1, 12)决定

            Sheet1.Range("B5:D5").Copy Sheet2.Cells(x + 2, "B").Resize(1, 12)

           

            '正文区

            '横向复制5/纵向复制4---粘贴份数由扩展区域Resize(10, 12)决定

            Sheet1.Range("B6:D7").Copy Sheet2.Cells(x + 3, "B").Resize(10, 12)

        Next x

    End Sub

    运行代码效果如图3所示。

    Excel <wbr>VBA技巧 <wbr>复制粘贴保留行高列宽等所有格式的方法

    3

    粘贴时为了保证行高和列宽一同被复制,可以先整行使用Copy方法进行复制粘贴,这样就可以保证行高一同被复制;使用PasteSpecial方法选择性粘贴,参数Paste设置为xlPasteColumnWidths即可保证列宽一同被复制,参数Paste设置为xlPasteFormats则只粘贴格式而不粘贴数据。

    为了能一次性复制多份,粘贴区域的选择很重要,粘贴区域的行数=样本区域行数×横向份数,粘贴区域的列数=样本区域列数×纵向份数。比如示例中正文区样本为23列,现需要横向5/纵向4份共20份粘贴正文区,则粘贴区域应为2×5=10行、3列×4=12列,即1012列的区域,所以示例粘贴区域为.Cells(x + 3, "B").Resize(10, 12)。如果粘贴区域设置不当将会出现不可意料的效果,请自行测试。

    好了,按照上述方法将代码修改成如下所示,运行后即可得到如图2所示效果。

    Sub 复制全部格式包括行高列宽()

        Dim x As Integer

       

        With Sheet2

            '清空数据

            .UsedRange.Clear

            '恢复标准列宽

            .Columns.ColumnWidth = .StandardWidth

            '恢复标准行高

            .Rows.RowHeight = .StandardHeight

        End With

       

        For x = 1 To 30 Step 15

            '复制大标题区

            Sheet1.Rows("3:4").Copy Sheet2.Rows(x)

           

            '小标题区

            '复制行高

            Sheet1.Rows(5).Copy Sheet2.Rows(x + 2)

            '纵向复制4

            Sheet1.Range("B5:D5").Copy Sheet2.Cells(x + 2, "B").Resize(1, 12)

           

            '正文区

            '横向复制行高5

            Sheet1.Rows("6:7").Copy

            Sheet2.Rows(x + 3 & ":" & x + 12).PasteSpecial xlPasteFormats   '选择性粘贴格式

            '横向复制5/纵向复制4

            Sheet1.Range("B6:D7").Copy

            With Sheet2.Cells(x + 3, "B").Resize(10, 12)

                .PasteSpecial xlPasteFormats  '选择性粘贴格式

                .PasteSpecial xlPasteColumnWidths '选择性粘贴列宽

            End With

        Next x

    End Sub

    转载于:https://www.cnblogs.com/zyjq/p/6658362.html

    展开全文
  • 发现从VBE复制粘贴代码到CSDN博客编辑器时,中文注释将丢失(显示为问号?),如下所示:Sub ???????() Dim cm As New CDO.Message 'Set cm = CreateObject("CDO.Message") '???????? '????·????C:\Windows...
  • 如下代码:将工作簿 测试(1)的第一个工作表的A1:T10000区域的数据,复制粘贴到工作簿 测试 的第一个工作表的A1:T10000区域 Sub GetData_2() Dim WB As Workbook, WB_1 As Workbook Set WB = Workbooks.Open("C...
  • vba代码进行复制粘贴的时候 [b5:c6].Copy '因为复制而使虚线框产生 [f1].PasteSpecial Paste:=12 'Application.CutCopyMode=1 'xlPasteValuesAndNumberFormats (按值与数字格式) '虚线框还在 ActiveSheet.Paste ...
  • 然后将一个工作表中的数据,粘贴到另一个工作表下方。 尝试了录制宏,然后个修改其中的代码。整个过程中,遇到了一些问题,在网上找,并试验,解决了部分问题。 1)判断工作表是否处于筛选模式  If Worksheets...
  • 前言:困扰了我一段时间的问题终于解决了!!   解决方法:设置相同的输入法 ...那么在你复制代码的时候,要把输入法调成日文输入法后再复制。   在粘贴的时候也有把粘贴时的输入法调成日文后,再进行粘贴操作。
  • 复制指定目录下excel工作簿中同名工作表,该代码将在相同目录下创建汇总工作簿,各工作簿中同名工作表将被分别复制到汇总工作簿的不同表中(汇总工作簿中各工作表以分工作簿名命名)。 所有要汇总的工作簿在同一个...
  • 其实这节的内容在我们实际的工作中利用的是非常多的,也是非常平常的一个操作,点击文件名,点右键复制,或者用CTRL+C,找到一个新的地址,右键粘贴,或者CTRL+V, 就可以了,但在VBA代码操作中,我们要把这些信息放...
  • 在我们平常工作中应该会经常有碰到,将一张工作簿里面的很多页工作表的数据进行汇总,当然如果数据就只有两三页到时候,我们复制粘贴就可以了,但是当有N多工作表页面的时候,这个时候复制粘贴就是一个很大的工程。...
  • 模块代码 Private ActiveTB As MSForms.TextBox Public Sub CreateShortCutMenu() Dim ShortCutMenu As CommandBar Dim ShortCutMenuItem As CommandBarButton Dim sCaption As Variant Dim iFaceId A...
  • 其实这节的内容在我们实际的工作中利用的是非常多的,也是非常平常的一个操作,点击文件名,点右键复制,或者用CTRL+C,找到一个新的地址,右键粘贴,或者CTRL+V, 就可以了,但在VBA代码操作中,我们要把这些信息放...
  • HI,大家好,我是星光。...要知道搜罗优秀代码复制粘贴化为己用是编写程序的基本能力,是程序员不可或缺的左膀右臂,不管你是新手还是高手,天下代码早晚都不过一个抄字——不过咱们得知道哪些能抄...
  • VBA精彩代码分享-1

    2019-05-02 18:09:00
    第一段的功能是修改VBA控件中的文本框控件,使其右键可以选择粘贴复制、剪切等: Option Explicit ' Required API declarations Private Declare Function CreatePopupMenu Lib "user32" () A...
  • 这很好,除了它复制所有可见数据(列A-N)当我真的希望它复制列A到K时(因为粘贴表上的L到N是我有设置参考号的公式的地方,因此无法粘贴)。我尝试了对下面的代码部分(包括offset)进行一些更改,但是它忽略了偏移量(可能是...
  • 复制的数据从目标表对应表头列下的起始空单元格处开始粘贴 End If Next Next target.Close (True) '将目标表格保存并关闭 End With End Sub </code></pre> 因为我刚接触VBA不久,目前还是菜鸟...
  • 展开全部由于你没有说明是怎么操作a1为1的以及复制网页到剪贴板后怎样整理数32313133353236313431303231363533e59b9ee7ad9431333335333036据(一般都不会直接粘贴的)后再粘贴到单元格或单元格区域以及没有具体的网址...
  • 其实这节的内容在我们实际的工作中利用的是非常多的,也是非常平常的一个操作,点击文件名,点右键复制,或者用CTRL+C,找到一个新的地址,右键粘贴,或者CTRL+V, 就可以了,但在VBA代码操作中,我们要把这些信息放...
  • 第二部分是逐一将各个工作表复制粘贴到汇总工作表中; 第三部分为提示,即当合并工作完成后弹出提示。 代码如下: Sub Comb() Dim i% On Error Resume Next Sheets(1).Select Worksheets.Add '新建一个工作表 ...
  • 图片上示例是3个工作表,实际工作中可能是几十个,如果一个一个复制粘贴至总表里面,耗费的时间很长,并且容易出错,今天教大家用一段通用的VBA代码来实现一键快速合并,效果如下所示: 只需要点击一下多表合并的...
  • Range("a2:a21").Copy [D1] '将[a2:a21]数据复制粘贴到D列 [D:D].RemoveDuplicates Columns:=1 '对D列数据请将去重操作 End Sub 2.使用数组方式直接去重 Sub 数组去重() On Error Resume Next Dim arr1() arr = ...
  • VBA代码使用Notepad++打开,文字乱码问题解决方法(已解决) 前提: 在修改VBA代码时,想要...2、复制粘贴VBA代码。 至此,代码已经不乱码了。 修改语言为VB,就可以更舒适的看代码了。 参考: https://..
  • 一小时搞定 简单VBA编程 Excel宏编程快速扫盲

    万次阅读 多人点赞 2018-01-19 09:45:19
    Excel宏编程可以快速完成批量表格操作:复制粘贴、数据过滤等,宏代码基于VB语言实现,有基础的编程经验就能快速阅读。下面是我的学习笔记。 1. Excel VBA编辑界面 (进入路径: sheet名称 --> 鼠标右键菜单 ...
  • 很多朋友会遇到这样的问题,就是很有很多页的数据,少的有几十页,多的可能有几百页,然后需要合并到一个页面做数据分析,如果一页页的复制粘贴的话,就比较麻烦。下面我就介绍一种利用Excel的宏计算来解决这个问题...
  • Data这是每个地区代码的所有项目我在同一工作簿中有一个“新项目”工作表,一个“数据”工作表和一个...我需要宏来添加一行,复制区域代码(在A列中;有超过30个区域,但默认情况下每个项目都添加到一个区域),在...
  • 有时候,你需要将几十个工作簿中的内容,快速汇总至合并至一个工作簿,如果手动一个复制粘贴,那心里有苦说不出。。。今天将大家用VBA一键合并,只需要几秒种,为了测试这段代码,我们新建了4个工作簿在文件夹中,...
  • 利用VBA在Word中排出漂亮的代码

    千次阅读 2018-07-25 14:02:16
    引言 在学习编程的过程中,常常会使用word来做笔记,下面我将对如何利用word 宏来进行代码的排版进行说明 ... 我用的是word2007,word2003和word2010操作...带高光的,直接复制粘贴到word就行了。  但是作为...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 188
精华内容 75
关键字:

vba复制粘贴代码