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
目前要实现将表1中的部分数据拷贝到表2中 用了sheets(1).[a1].CurrentRegion.Copy sheets(2).[a1] 现在出现一个现象, 有的时候表2的数据和表1是一致的, 有的时候是不一致 表1中有的 单元格 用的是公式, 在 复制 到表2的时候, 有时是 复制 这个公式的结果, 有时是 复制 公式, 所以会出错 现在不知道如何解决这个问题 currentregion.copy 这个函数 带什么参数后可能实现只拷贝 单元格 的值 把语句改成 Sheets(1).[a1].Cur 前言:因为考虑数据量的问题,所以在计算季度数据的时候,做了一个辅助列“季度累计数(至上月)”,季度累计数=本月发展数+季度累计数(至上月),这样就碰到一个问题:需要每个月都把季度累计数 复制 到季度累计数(至上月) 如果列数少的话还好,列数一多真的要奔溃;如果每个月还有要改模板的话,就更讨厌了 所以用 vba 写了一段脚本,自动做上述工作,只需要确定好从什么名字的列 复制 到什么名字的列即可 Sub 季度数据... EXCEL vba 循环 复制 粘贴 另存为 新的文件 VBA 代码 分别设置 单元格 内容 With Workbooks(ThisWorkbook.Name) Application.EnableEvents = False Application.ScreenUpdating = False Application.DisplayAlerts = False If Application.CutCopyMode = True Then Application.CutCopyMode = False Application.StandardFont = "宋体" ​EXCEL是由很多的对象组成,每个对象都有他的属性和方法,所谓的对象可以理解为所有存在的东西,在同一个程序里的对象之间是存在关系的,比如说上下级关系或同级关系,上下级关系之间用英文句点“.”连接。 application.workbooks(1).worksheets(1).range(“A1”) 意思就是当前应用程序(excel)下面的已经打开的第一个工作薄下面的第一个工作表里面的A1 单元格 ,但一般情况下我们不需要这么麻烦,如果我们只对当前的表格操作,前面的都可以省略,只需要写range(“A1 心得(4):怎么利用 VBA 选定excel中的特定 区域 或者特定的点,并得到它的值 问题:1.如何选定excel中特定的点或者 区域 ;2.如何按方向(自上而下,自左而右。) 选取特定的点: 结果如下: 除了上述的方式还有以下方式: Sub 选取点() ThisWorkbook.Sheets(1).Range("a1") ThisWorkbook.Sheets(1).Cells(1, ... 作者:iamlaosong 做一个工作表拆分和合并的工具,必然会用到 复制粘贴 语句。最简单的就是普通的直接 复制粘贴 ,但有时也需要用到 选择 粘贴 ,特别是原数据格式比较复杂,希望新生成的数据简单一点,比如直接 复制 数值。有时候格式复杂的文档完全 复制粘贴 后,新生成的文件还会无法打开。 西游记中孙悟空最神奇的本领之一就是拔根毫毛,瞬间变出无数个孙猴子。代码中的数据可谓神通广大,如何实现瞬间变身呢?其实也很简单。 Private Declare Sub CopyMemory Lib "kernel32" _ Alias "RtlMoveMemory" ( _ Destination As Any, _ Source As Any, _ ByVal ... Range("C18").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 代码自己手工改改,如下: Sheet1.Range("C18").Copy Sheet1.Range("C18").PasteSpecial Paste:=xlPaste 打开给定工作簿, 选择 按钮,输入你需要在多个表格中 复制 的数据位置(可以为空),但是切记,第一行和第一列不能为空和最短的数据,否则会被覆盖掉,因为是根据第一行和第一列的长度来判断并向后依次追加数据(按行按列都是如此)。 选择 的文件可以多选(同Windows操作)。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/ 每当你使用 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 语句的混合,使这些工作表更... 由于有点学习得比较仓促,很多内容运用得不熟练,现在开始呢对部分问题试着自己解决一下,今天先来个简单的,后面慢慢加大难度。点击Sheet1里面的内容,自动显示Sheet2表格对应内容。 sheet1功能: 代码如下:(谨以参考) Private Sub Command1_Click()    ' 复制 If Text1.SelText <> "" Then Clipboard.SetText Text1.SelText    '理解:如果Text1文本框选定的文字不是空则把剪切板的内容设置为Text1选中的文字 End SubPrivate Sub Command2_Cl...