精华内容
下载资源
问答
  • 本期主要讲讲单元格复制粘贴等操作。 一、复制粘贴固定区域的单元格 因为以下内容都是复制单个或者固定区域的单元格内容,就不多说了,备注上面都有说明。 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

    展开全文
  • EXCEL vba 循环复制 粘贴 另存为 新的文件VBA代码 分别设置单元格内容 With Workbooks(ThisWorkbook.Name) Application.EnableEvents = False Application.ScreenUpdating = False Application.DisplayAlerts = ...
  • 每当你使用 Cells() , Range() , Columns() , Rows() 等时,请确保你让VBA知道你希望使用哪个工作表,否则,'ll use the ActiveSheet, which can cause errors. You did this in some places, but not others. ...

    每当你使用 Cells() , Range() , Columns() , Rows() 等时,请确保你让VBA知道你希望使用哪个工作表,否则,'ll use the ActiveSheet, which can cause errors. You did this in some places, but not others. Below I'已经完成了使用 With 语句的混合,使这些工作表更长名 . 阅读下面的内容,看看你是否能看到我做了什么 . 如果您有任何疑问,请告诉我!

    Sub t()

    Dim G7_Tab_Name As String

    G7_Tab_Name = "G7"

    Dim wkbDest As Workbook

    Set wkbDest = ActiveWorkbook

    Dim SheetToCopy As Worksheet

    Set SheetToCopy = wkbSource.Sheets(1)

    With sheetToCopy

    LastInputRow = .Cells(.Cells.Rows.Count, "A").End(xlUp).Row

    LastInputColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column

    End With

    CopyRange = SheetToCopy.Range(SheetToCopy.Cells(LastInputRow, 1), SheetToCopy.Cells(1, LastInputColumn))

    'Check if any existing data

    Dim destWS As Worksheet

    If Len(wkbDest.Sheets(G7_Tab_Name).Range("A1").Value) > 0 Then

    wkbDest.Sheets(G7_Tab_Name).UsedRange.ClearContents

    Set destWS = wkbDest.Sheets(G7_Tab_Name)

    CopyRange.Copy Destination:=destWS.Range(destWS.Cells(LastInputRow, 1), destWS.Cells(1, LastInputColumn))

    Else

    CopyRange.Copy Destination:=destWS.Range(destWS.Cells(LastInputRow, 1), destWS.Cells(1, LastInputColumn))

    End If

    End Sub

    你这样做的地方,但不是到处都是 . 即:

    LastInputRow = wkbSource.Sheets(1).Cells(Cells.Rows.Count, "A").End(xlUp).Row

    你正确告诉第一个 Cells() 要使用哪个工作表,但VBA没有"remember"任何东西,所以下一个 Cells.Rows.Count 将在活动工作表上,这不一定是你的 wkbSource.Sheets(1) 工作表 . 将该行更改为

    LastInputRow = wkbSource.Sheets(1).Cells(wkbSource.Sheets(1).Cells.Rows.Count, "A").End(xlUp).Row

    (注意:这可能无法解决您的问题,但它绝对有助于收紧代码并为更少的错误留出空间) .

    编辑:尝试用此替换你的 CopyRange :

    With sheetToCopy

    copyRange = .Range(.Cells(1, 1), .Cells(LastInputRow, LastInputColumn))

    End With

    这将产生从A1到最后一列中最后一行的范围 .

    编辑2:你发布的代码 CopyRange 的代码并不清楚,但是你应该这样做:

    Dim CopyRange as Range

    Set CopyRange = .Range(.Cells(1, 1), .Cells(LastInputRow, LastInputColumn))

    展开全文
  • 最重要的一点,原来复制单元格竟然可以用赋值语句来完成,简直是神操作啊。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
    


    展开全文
  • VBA复制几十万行太慢怎么办?怎么提升效率其实之前讲过啦~ 比如创建一个20万行*20列的数据,复制到另一张表,怎么样创建比较快呢? 要是想着循环20万次,每次都赋值一次到单元格,那可就太慢了,最好就是先循环...
  • Excel VBA Range单元格操作实例

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

    2020-08-25 23:32:31
    由于有点学习得比较仓促,很多内容运用得不熟练,现在开始呢对部分问题试着自己解决一下,今天先来个简单的,后面慢慢加大难度。... sheet1功能: ...(3)把sheet2的数据复制到sheet1的显示区域。 (4)把复.
  • 功能:根据空格,把单元格6的字符串拆分到7,8,9单元格。 在execl中,按alt+f11打开vba代码输入框,复制粘贴本代码到里面,然后执行。 使用到的知识点 1.vba的循环 2.单元格内容的读取和写入。
  • VBA•操作单元格对象将数据拆分到多表在工作中我们经常要将同一类别的数据单独放到同一张表格中,对于这种重复性的...首先,在我们看到部门名称为"一车间"的数据时,我们会复制该行的数据,粘贴到"一车间"这个表格...
  • 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 | ...
  • 这很好,除了它复制所有可见数据(列A-N)当我真的希望它复制列A到K时(因为粘贴表上的L到N是我有设置参考号的公式的地方,因此无法粘贴)。我尝试了对下面的代码部分(包括offset)进行一些更改,但是它忽略了偏移量(可能是...
  • 目录 示例: 实现代码: ...参数SkipBlanks表示是否跳过空白单元格,若为True,则表示不将剪贴板中的空白单元格复制到目标区域。 参数Transpose表示是否转置,若为True,则表示转置。 示例: ..
  • 表格在复制粘贴时候,提示“不同的单元格格式太多”。简直要崩溃啊有木有!其实问题,是在开始的单元格样式里的莫名其妙的样式太多,如下图,长期做表的你有机会总会见到甚至还有各种韩文命名的单元格样式。数量巨多...
  • 3, excel vba 获取表格里的单元格的值

    万次阅读 2018-01-22 15:20:02
    通过上一节, 我们己经可以掌握进入vba的编辑页面,可以愉快的写代码了.  接下来,给大家看看怎么取得表格里一个单元格的值.因为只有拿到了这个值,你才能对它进行各种改造 ... 复制粘贴以下代码, Public Sub 点点
  • 最近遇到一个小需求,如何将...传统的方法可以直接对班期列进行分列操作,再将分列所得数据一行行复制转置粘贴,步骤繁琐麻烦,这里用VBA处理,写好代码,一秒钟搞定,一劳永逸~话不多说,让我们看下处理效果:思路1...
  • 复制的数据从目标表对应表头列下的起始空单元格处开始粘贴 End If Next Next target.Close (True) '将目标表格保存并关闭 End With End Sub </code></pre> 因为我刚接触VBA不久,目前还是菜鸟...
  • C2”双击向下填充三、将D列最后单元格内容通过复制粘贴转换为数值,方便我们下一步调用四、选择我们需要插入图片的单元格,选择“插入”→“图片”五、根据提示找到我们需要插入的图片位置,将“ "曹操.j...
  • excel无法复制粘贴已保护的工作表

    千次阅读 2011-12-02 15:12:57
    若要修改受保护单元格或图表,请先使用‘撤消工作表保护’命令(在‘审阅’选项卡的‘更改’组中)来取消保护。可能会提示您输入密码。这时候我们可以用VBA宏代码破解法来破解表格保护密码:第一步:打开该文件,先...
  • 如何取消合并单元格并填充内容,以前弄过一...一个个复制粘贴显然不是办法。现在就可以用一段代码来搞定了。做完之后效果如下:分别填入进去了。使用的代码如下:Private Sub CommandButton1_Click() Dim myrange A...
  • 展开全部你好,此问62616964757a686964616fe78988e69d8331333431353235题可以通过Excel VBA...全部VBA代码如下,复制粘贴到你的Excel中就可以。SubChaiFenDanYuanGe()'声明变量Dimarr()AsString'定义一个字符串数...
  • 展开全部由于你没有说明是怎么操作a1为1的以及复制网页到剪贴板后怎样整理数32313133353236313431303231363533e59b9ee7ad9431333335333036据(一般都不会直接粘贴的)后再粘贴单元格单元格区域以及没有具体的网址...
  • 是文件关闭前,随便复制一个空单元格就可以了. 对策b Application.DisplayAlerts = False '关闭任何提醒 → 但复制的信息将仍旧保存在剪贴板中. 对策c Application.CutCopyMode = False '直接关闭剪贴板,刚才复制的...
  • 工作表单元格区域另存为图片

    千次阅读 2019-04-25 00:14:56
    先来看看如下操作,在工作表中选中相应的单元格区域,依次点击【开始】选项卡的【复制】下拉按钮->【复制为图片】命令;然后打开图片编辑器,粘贴图片;另存为图片文件。 貌似这个操作不并不麻烦,如果老板需要...
  • EXCEL VBA常用技巧

    2010-02-09 22:28:27
    VBA常用技巧 目录 第1章 Range(单元格)对象 3 技巧1 单元格的引用方法 3 1-1 使用Range属性 3 1-2 使用Cells属性 4 1-3 使用快捷记号 4 1-4 使用Offset属性 5 1-5 使用Resize属性 6 1-6 使用Union方法 7 1-7 使用...
  • VBA常用技巧

    2014-12-21 16:39:28
    技巧7 复制单元格区域 12 技巧8 仅复制数值到另一区域 12 8-1 使用选择性粘贴 12 8-2 直接赋值的方法 12 技巧9 单元格自动进入编辑状态 12 技巧10 禁用单元格拖放功能 12 技巧11 单元格格式操作 12 11-1 单元格字体...
  • 虽说现在VBA真的是毫无排面,但只要会启用「宏」,收藏几个复制粘贴就能用的代码,作为一名办公室民工,总有用得上的时候。所以这里记录几个之前工作中高频使用的小小小脚本。下面提到的工作簿,即单个的 .xlsx 或 ....
  • 下载.xlsm文件,或将VBA复制粘贴到您自己的启用宏的excel文件中。 在单元格A:1中复制粘贴您的DISS导出。 请务必覆盖此处的所有内容,包括说明,这一点很重要 启用宏:转到“文件”选项卡>“选项”。 在左侧...
  • ——本文不介绍使用"数据有效性"设置下拉列表,而是要挑点"数据有效性"设置下拉列表的小刺:① 不点击单元格不知道哪个单元格可以下拉输入;② 跨工作表引用时要先定义名称才能引用,不能直接引用;③ 通过复制...
  • 复制粘贴代码后,将窗口关闭。 2、在A1单元格中输入阳历日期,再在另一个单元格输入公式=NongLi(A1),就可以自动将阳历转换成农历了。 Public Function NongLi(Optional xx_date As Date)Dim MonthAdd(11), ...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 136
精华内容 54
关键字:

vba单元格复制粘贴