精华内容
下载资源
问答
  • 本期主要讲讲单元格复制粘贴等操作。 一、复制粘贴固定区域的单元格 因为以下内容都是复制单个或者固定区域的单元格内容,就不多说了,备注上面都有说明。 Option Explicit Sub CopyRange() '复制单元格内容...

    本期主要讲讲单元格复制粘贴等操作。

    一、复制粘贴固定区域的单元格

    因为以下内容都是复制单个或者固定区域的单元格内容,就不多说了,备注上面都有说明。

    Option Explicit
    
    Sub CopyRange()
        '复制单元格内容示例1
        '注意:单元格的格式、公式、批注等也会被复制过去哟
        Sheets(1).Range("A1").Copy Sheets(1).Range("B1")
    End Sub
    
    Sub CopyRange2()
        '复制单元格内容示例2,打开了下面2个工作表后,就可以通过工作表的名称进行复制啦
        Workbooks("测试表1.xlsx").Sheets(1).Range("A1").Copy _
        Workbooks("测试表2.xlsx").Sheets(1).Range("A1")
    End Sub
    Sub CopyRange3()
        '复制单元格内容示例3,和上面几乎一样
        Dim rng1 As Range, rng2 As Range
        Set rng1 = Workbooks("测试表1.xlsx").Sheets(1).Range("A1")
        Set rng2 = Workbooks("测试表2.xlsx").Sheets(1).Range("A1")
        rng1.Copy rng2
    End Sub
    Sub CopyRange4()
        '复制单元格内容示例4,复制区域,选择一个单元格进行粘贴
        Sheets(1).Range("A1:D5").Copy Sheets(2).Range("A1")
    End Sub
    Sub MoveRange1()
        '移动(剪切)单元格内容示例1。
        '注意:单元格的格式、公式、批注等也会被剪切过去哟
        '就是把Copy换成了Cut,其他几乎一样
        Sheets(1).Range("A1").Cut Sheets(1).Range("B1")
    End Sub

    二、复制粘贴可变单元格区域

    上面主要是讲的特定区域的,下面讲讲会变动的区域。比如一张表新增了一行,复制区域就改变了,有没有什么比较方便的方式解决呢?

    加个CurrentRegion就可以实现,用法如下。

    Sub CopyCurrentRange()
        '复制范围会变动的表格
        Sheets(1).Range("A1").CurrentRegion.Copy Sheets(2).Range("A1")
    End Sub

     

    从上面的图可以看出,新增了第15行张三点击运行后,仍然能正常复制过去。要复制的表如果有标题、有日期行,或者是筛选后的表格,仍然可以实现复制。

    如果要复制的区域是一个表,就可以用以下方式(感觉更复杂了点,好像没啥实际用途)

    第一,插入表格

    第二,重新命名,咱们插入表格之后,在设计——表名称那重命名一下,命名为Table111

    第三:这么操作就可以把表复制过去啦。

    Sub CopyTable()
        Sheets(1).Range("table111").Copy Sheets(2).Range("A1")
    End Sub

    经过实际使用,发现确实不怎么方便,当然了还有Range的End方法,这个在7月29号的文档里用过。

    Sub RangeEnd()
        '从A10000往上数,遇到有数据的最下面一行
        Debug.Print Sheets(1).Range("A10000").End(xlUp).Row
        '从A1往下数,有数据的最下面一行
        Debug.Print Sheets(1).Range("A1").End(xlDown).Row
        '从Z1往左数,有数据的最右边一列
        Debug.Print Sheets(1).Range("Z1").End(xlToLeft).Column
        '从A1往右边数,有数据的最右边一列
        Debug.Print Sheets(1).Range("A1").End(xlToRight).Column
    End Sub

    咱们表格范围是A1:D17大小的话,上面结果值分别为17,17,5,5。但是需要注意就是,选定单元格的那一行一列别有空值,不然返回的内容可能是空值附近的单元格哟。

    三、调整单元格区域

    用Range.Resize重新调整单元格区域,左边的参数是行数,右边的参数是列数。

    另外需要注意的是,调整后的区域是从原来区域左上角开始框哟。

    比如下面例子开始是框柱B2:D6,重新设置区域后,就从B2往下和往右算行列数。

    Sub RangeResize()
        Dim rng As Range
        Set rng = Range("B2:D6")
        Set rng = rng.Resize(8, 5)
    End Sub

    展开全文
  • Copy + Paste大法,其实自己个录个宏就行的 Range(...就这么一句,自己理解下,Value代表里面的值,Value=Value,然后就没有然后了 Sheet1.Range("P1:S50").Value =Sheet1.Range("P1:S50").Value '这是多个单元格的用法

    Copy + Paste大法,其实自己个录个宏就行的

    Range("C18").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    	:=False, Transpose:=False

    代码自己手工改改,如下:

    Sheet1.Range("C18").Copy
    Sheet1.Range("C18").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    	:=False, Transpose:=False

    说说另一种方法,也是我很喜欢用的,关键是简单:

    Sheet1.Range("P1").Value =Sheet1.Range("P1").Value
    '对的,就这么一句,自己理解下,Value代表里面的值,Value=Value,然后就没有然后了
    
    
    Sheet1.Range("P1:S50").Value =Sheet1.Range("P1:S50").Value 
    '这是多个单元格的用法

    展开全文
  • 最重要的一点,原来复制单元格竟然可以用赋值语句来完成,简直是神操作啊。Option Explicit '1 单元格输入 Sub t1() Range("a1") = "a" & "b" Range("b1")...

    这节的例子很实用,值得好好学习。最重要的一点,原来复制单元格竟然可以用赋值语句来完成,简直是神操作啊。

    Option Explicit
    
     
    '1 单元格输入
     
        Sub t1()
          Range("a1") = "a" & "b"
          Range("b1") = "a" & Chr(10) & "b" '换行答输入
        End Sub
        
    '2 单元格复制和剪切
        
          Sub t2()
            Range("a1:a10").Copy Range("c1") 'A1:A10的内容复制到C1
          End Sub
        
          Sub t3()
            Range("a1:a10").Copy
            ActiveSheet.Paste Range("d1") '粘贴至D1
          End Sub
          
          Sub t4()
            Range("a1:a10").Copy
            Range("e1").PasteSpecial (xlPasteValues) '只粘贴为数值
          End Sub
          Sub t5()
            Range("a1:a10").Cut
            ActiveSheet.Paste Range("f1") '粘贴到f1
          End Sub
    
          Sub t6()
            Range("c1:c10").Copy
            Range("a1:a10").PasteSpecial Operation:=xlAdd '选择粘贴-加
          End Sub
          
          Sub T7()
              Range("G1:G10") = Range("A1:A10").Value
          End Sub
    '3 填充公式
        Sub T8()
          Range("b1") = "=a1*10"
          Range("b1:b10").FillDown '向下填充公式
        End Sub
        
    


    Option Explicit
    
    Sub c1()
      Rows(4).Insert
    End Sub
    
    Sub c2() '插入行并复制公式
      Rows(4).Insert
      Range("3:4").FillDown
      Range("4:4").SpecialCells(xlCellTypeConstants) = ""
    End Sub
    
    Sub c3()
      Dim x As Integer
      For x = 2 To 20
        If Cells(x, 3) <> Cells(x + 1, 3) Then
          Rows(x + 1).Insert
          x = x + 1
        End If
      Next x
    End Sub
    
    Sub c4()
      Dim x As Integer, m1 As Integer, m2 As Integer
      Dim k As Integer
      m1 = 2
      For x = 2 To 1000
        If Cells(x, 1) = "" Then Exit Sub
        If Cells(x, 3) <> Cells(x + 1, 3) Then
          m2 = x
          Rows(x + 1).Insert
          Cells(x + 1, "c") = Cells(x, "c") & " 小计"
          Cells(x + 1, "h") = "=sum(h" & m1 & ":h" & m2 & ")"
          Cells(x + 1, "h").Resize(1, 4).FillRight
          Cells(x + 1, "i") = ""
          x = x + 1
          m1 = m2 + 2
        End If
      Next x
    End Sub
    Sub c44()
    '个人方法
    Dim x As Integer
    Dim t As Integer
    t = Range("c65536").End(xlUp).Row
    For x = t To 2 Step -1
        If Cells(x, 3) <> Cells(x - 1, 3) Then
            Rows(x).Insert
             Cells(Cells(x, "C").Offset(1, 0).End(xlDown).Row + 1, "C") = Cells(Cells(x, "C").Offset(1, 0).End(xlDown).Row, "C") & " 小计"
            Cells(Cells(x, "H").Offset(1, 0).End(xlDown).Row + 1, "H") = _
            Application.Sum(Range(Cells(x, "h").Offset(1, 0), Cells(x, "H").Offset(1, 0).End(xlDown)))
        End If
    Next x
    End Sub
    
    Sub dd() '删除小计行
     Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    End Sub
    


    展开全文
  • 可完成以下项目: 1.支持EXCEL VBA处理批量粘贴动作 2.支持对象窗体运行 3.高效处理大批量文件粘贴工作
  • VBA中实现Excel表格单元格复制,可以根据需要自行定制要复制的内容。包括值、格式、单元格宽度、背景色等
  • vba拷贝粘贴单元格 粘贴时忽略空白单元格 (Ignore Blank Cells When Pasting) Last week, I was working on a client's file, and we wanted to get any new information from an update file, and paste it into ...

    vba拷贝粘贴单元格

    Last week, I was working on a client's file, and we wanted to get any new information from an update file, and paste it into the current record.

    上周,我正在处理客户文件,我们希望从更新文件中获取任何新信息,并将其粘贴到当前记录中。

    Both files were set up with the same columns, but the update file only had a few of the fields filled in. We could have used a macro to loop through the fields, grab any new information, and paste it to the current record. However, that would be a slow way to update the records, especially in a large file.

    两个文件都设置有相同的列,但更新文件仅填充了一些字段。我们可以使用宏在这些字段之间循环,获取任何新信息并将其粘贴到当前记录中。 但是,这将是更新记录的缓慢方法,尤其是在大文件中。

    Fortunately, there is a built-in feature in Excel, that will copy a block of cells, and only paste the cells that contain data.

    幸运的是,Excel中有一个内置功能,它将复制一个单元格块,并且仅粘贴包含数据的单元格。

    新旧数据 (The Old and New Data)

    In the screen shot below, you can see data that is similar to the two files that I was using in the macro. At the top, you can see the current data, and the orange rows are going to be updated.

    在下面的屏幕快照中,您可以看到与我在宏中使用的两个文件相似的数据。 在顶部,您可以看到当前数据,橙色行将被更新。

    The Update file is shown at the bottom, and the green cells have some new data. I've circled a few of the places where there are blanks cells in the Update file, and valid data in the current record. We don't want to lose that data, when pasting in the new information.

    更新文件显示在底部,绿色单元格包含一些新数据。 我已经圈出了更新文件中空白单元格和当前记录中有效数据的一些位置。 粘贴新信息时,我们不想丢失这些数据。

    pastespecialblanks01

    使用粘贴特殊命令 (Use the Paste Special Command)

    To paste the new data, without overwriting the existing data with blank cells, you can use the Paste Special command.

    要粘贴新数据而不用空白单元格覆盖现有数据,可以使用“选择性粘贴”命令。

    1. Copy the green cells

      复制绿色单元格
    2. Select the top left orange cell, where the data will be pasted

      选择左上角的橙色单元格,将数据粘贴到该单元格中
    3. On the Ribbon's Home tab, click the arrow, below the Paste button

      在功能区的“主页”选项卡上,单击“粘贴”按钮下方的箭头。
    4. Click Paste Special

      单击特殊粘贴
    5. In the Paste Special window, add a check mark to "Skip Blanks", then click OK

      在“选择性粘贴”窗口中,向“跳过空白”添加一个复选标记,然后单击“确定”。

    The data from the Update records will be pasted into the current record, but the blank cells won't overwrite the cells with valid data, in the current record.

    Update记录中的数据将粘贴到当前记录中,但是空白单元格不会在当前记录中覆盖有效数据单元格。

    To use this technique in a macro, turn on the macro recorder, while you follow the steps listed above. Then, turn off the recorder, and incorporate the code into your existing macro.

    要在宏中使用此技术,请按照上面列出的步骤打开宏记录器。 然后,关闭记录器,并将代码合并到您现有的宏中。

    下载样本文件 (Download the Sample File)

    To see how this feature works, you can download the sample file from the Data Entry Tips page on my Contextures website. The zipped file is in xlsx format, and does not contain macros.

    若要查看此功能的工作原理,可以从Contextures网站上的“数据输入提示”页面下载示例文件 。 压缩文件为xlsx格式,不包含宏。

    视频:粘贴时忽略空白单元格 (Video: Ignore Blank Cells When Pasting)

    This very short video shows how to copy and paste, without overwriting the original data with blank cells.

    这个非常短的视频展示了如何复制和粘贴而不用空白单元格覆盖原始数据。

    演示地址

    翻译自: https://contexturesblog.com/archives/2014/11/20/ignore-blank-cells-when-pasting/

    vba拷贝粘贴单元格

    展开全文
  • EXCEL vba 循环复制 粘贴 另存为 新的文件VBA代码 分别设置单元格内容 With Workbooks(ThisWorkbook.Name) Application.EnableEvents = False Application.ScreenUpdating = False Application.DisplayAlerts = ...
  • VBA,把excel单元格复制成图片

    千次阅读 2017-11-22 18:55:11
    网上找的 Sub 导出为图片() Sheets("日报").Range("A1:Q80").Select Selection.Copy Selection.CopyPicture '选区复制为图片 With ActiveSheet.ChartObjects.Add(0, 0, Selection.Width,
  • VBA学习之复制粘贴

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

    万次阅读 2017-06-28 00:30:01
    VBA复制粘贴自动筛选后的内容: Sub sx() If Dir("D:\VBA\xx.xls") <> "" Then Workbooks.Open Filename:="D:\VBA\xx.xls" Else GoTo ERR End If Range("A1").Select With Selection
  • VBA 复制粘贴很多数据比较慢怎么办

    千次阅读 2020-08-26 23:59:35
    VBA复制几十万行太慢怎么办?怎么提升效率其实之前讲过啦~ 比如创建一个20万行*20列的数据,复制到另一张表,怎么样创建比较快呢? 要是想着循环20万次,每次都赋值一次到单元格,那可就太慢了,最好就是先循环...
  • Sub Macro2() Dim iRow, iCount iRow = 981 //从981行开始扩展 copy981行前的格式 Dim SampleChart Set SampleChart = Sheet1.ChartObjects("Chart 353") SampleChart.Copy For iCount = 1 To 100 ... ...
  • vba选中的单元格到剪贴板If you want to share a smallpart of your Excel worksheet but don’t want to send an Excel file, you can copy part of the worksheet to the clipboard as a picture instead, which ...
  • 功能:根据空格,把单元格6的字符串拆分到7,8,9单元格。 在execl中,按alt+f11打开vba代码输入框,复制粘贴本代码到里面,然后执行。 使用到的知识点 1.vba的循环 2.单元格内容的读取和写入。
  • VBA,excel中选择特定内容复制粘贴

    万次阅读 2017-11-11 15:50:37
    重点是这个:End(xlDown)、End(xlUp)、End(xltoLeft)、End(xltoRight),就是从某个单元格开始,向下/上/左/右 找到第一个有数据的单元格。 sheet1 1 | A | B 2 | id | 公式列 3 | 001 | 20 4 | 002 | 11 5 | ...
  • VBA用Copy方法进行复制粘贴,往往会导致粘贴的数据没有了行高和列宽。那么,当我们要进行复制粘贴时,如何保证粘贴的数据保留原有的格式(包括行高列宽都不能变)。 笔者以一个模板设计为例进行说明。 模板表如图1 所...
  • VBA单元格、工作表、工作簿

    千次阅读 2019-04-30 23:08:35
    详解VBA单元格、工作表、工作簿各种表示、方法,注意事项。
  • crs = Application.CountA(Sheet("出差汇总表").[a:a])+1 '求出出差汇总表的a列有多少个非空单元格,从下一行开始粘贴 If rs = 1 Then GoTo 100 '如果rs=1,即出差登记表中只有原始表头行,那么GoTo 100,弹窗提示...
  • excel vba复制黏贴 Using VBA to program Excel isn't as popular as it once was. However, there are still plenty of programmers who prefer it when working with Excel. If you are one of those people, this...
  • VBA:EXCEL粘贴时跳过有公式单元格

    千次阅读 2019-06-05 07:07:33
    利用HasFormula属性,如果为真时跳过,如果为假是覆盖!
  • VBA复制粘贴效率问题

    2011-09-05 19:39:00
    其中关于复制粘贴这块,想随便唠叨几句。 由于需要的特殊性,我们需要对每个单元格进行拷贝粘贴,28天即28行,102个KPI即102列,在加上KPI的title,时间列和cluster列,共29行,104列 开始的时候使用Range.Copy 和...
  • 大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,第NO.118-NO.120则,内容是:在复制单元格区域时,如何仅复制单元格区域的数值、使用直接赋值的方法选择性粘贴数值、在单元格区操作时,如何对...
  • Excel VBA Range单元格操作实例

    千次阅读 2020-02-16 21:51:53
    四、Range操作 4.2取得最后一个非空单元格 xlDown/xlToRight/xlToLeft/xlUp ...4.3 复制单元格区域 注意:使用PasteSpecial方法时指定xlPasteAll(粘贴全部),并不包括粘贴列宽 Sub CopyWithSameCol...
  • VBA给合并单元格黏贴赋值

    千次阅读 2013-11-06 12:33:49
    所以在vba中也一定不能了,其实可以通过一种workaround的方式来间接实现这个需求,实现步骤如下 一、拆分合并的单元格 二、给第一个单元格赋值 三、合并单元格 下面是具体的使用 Sub tttt()  Dim i, g ...
  • 假如一个单元格包含多行信息,比如说一些唯一的ID信息,我需要将该列的这些多行信息进行拆分,将其拆分为多行,其余列信息进行复制。例如如下图所示的示例。 可以看到,该Excel表格的A列每一行都有两行的数据,而...
  • 1.EXCEL VBA遍布文件夹的操作 关于VBA遍历文件夹主要用的是提供的Application.FileDialo函数来由个人进行自由选择,通过获取选择的文件夹地址之后,通过Dir函数来匹配选取文件夹下的相应的文档。相应的VBA程序代码...
  • VBA 拷贝并粘贴内容

    千次阅读 2020-08-25 23:32:31
    由于有点学习得比较仓促,很多内容运用得不熟练,现在开始呢对部分问题试着自己解决一下,今天先来个简单的,后面慢慢加大难度。... sheet1功能: ...(3)把sheet2的数据复制到sheet1的显示区域。 (4)把复.
  • 意思就是当前应用程序(excel)下面的已经打开的第一个工作薄下面的第一个工作表里面的A1单元格,但一般情况下我们不需要这么麻烦,如果我们只对当前的表格操作,前面的都可以省略,只需要写range(“A1
  • 复制单元格的批注该怎么操作呢?代码如下:Public Sub 复制单元格批注() Dim range1 As range Dim range2 As range '清除G列 Columns("G:G").Clear Set range1 = range("A1:B4") '指定要复制单元格区域 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,663
精华内容 665
关键字:

vba单元格复制粘贴