精华内容
下载资源
问答
  • PasteSpecial Paste:粘贴参数

    千次阅读 2020-02-21 23:34:43
     下面,就给大家介绍PasteSpecial Paste对象的各种参数,并给出相应的例子供大家参考。  当然,我们得通过Range对象的PasteSpecial方法来完成。  参数「Operation」的值的列表如下(默认值是...

    通过VBA来完成粘贴操作,在Excel中,我们可以和平常使用鼠标的操作一样,可以选择只粘贴数值还是连格式一起粘贴。

      下面,就给大家介绍PasteSpecial Paste对象的各种参数,并给出相应的例子供大家参考。

      当然,我们得通过Range对象的PasteSpecial方法来完成。

      参数「Operation」的值的列表如下(默认值是xlPasteSpecialOperationNone)

      常量             粘贴内容 
      xlPasteSpecialOperationNone    无操作 
      xlPasteSpecialOperationAdd     加 
      xlPasteSpecialOperationSubtract    減 
      xlPasteSpecialOperationMultiply    乗 
      xlPasteSpecialOperationDivide     除 
     

      参数「Paste」的值的列表如下(一般默认的是xlPasteAll)

      常量              粘贴内容 
      xlPasteAll             所有 
      xlPasteFormulas          计算式 
      xlPasteValues            值 
      xlPasteFormats           格式 
      xlPasteComments          注释 
      xlPasteValidation          入力规则 
      xlPasteAllExceptBorders       边框以外 
      xlPasteColumnWidths         列宽 
      xlPasteFormulasAndNumberFormats   计算式和值 
      xlPasteValuesAndNumberFormats    值和格式

      例子如下:

      Range("Z1").Copy

      Range("C13").PasteSpecial Paste:=xlPasteAll,Operation:=xlPasteSpecialOperationNone

      如上代码功能是:对Z1进行复制,将其粘贴到C13单元格中,粘贴的时候连内容及格式全部都粘贴,粘贴的时候无任何的加减乘除算术运算的操作

    展开全文
  • EnsureDispatch的启动方式要求格式比较严格,方法必须首字母大写,最主要的是这种启动方式可以使用win32com.client里面的excelVBA常量constants,而普通Dispatch不可以完成,选择性粘贴PasteSpecial必须要用到...

    前提要景:

      最近收到这么一个需求,excel表格里面我们只想要结果,不要把底表发出来,也就是把excel里面做好的数据粘贴在新的excel,并选择性粘贴为数值,并且保留格式。完成后发邮件给相应的经理老板们。在经过一系列跌跌撞撞,磕磕碰碰的错误下,写了个excel自动把特定的区域复制粘贴到新的excel的sheet中,并保留了数值和格式。Python操作excel的模块有千千万,本文只挑选了win32com.client来进行操作,如有其它模块的操作,记得艾特我学习一下!

    启动excel

    Python启动excel的常规操作有两种:

    第一种:

    os.system('taskkill /IM EXCEL.exe /F')

    xlapp = Dispatch('Excel.Application')

    第二种:

    os.system('taskkill /IM EXCEL.exe /F')

    xlapp = win32com.client.gencache.EnsureDispatch('Excel.Application')

    有什么区别呢?我也清楚得不仔细,EnsureDispatch的启动方式要求格式比较严格,方法必须首字母大写,最主要的是这种启动方式可以使用win32com.client里面的excelVBA常量constants,而普通Dispatch不可以完成,选择性粘贴PasteSpecial必须要用到constants的常量,故本文使用EnsureDispatch的方式启动excel。

    然后使用Visible为true,表示工作簿可见,

    xlapp.Visible = True

    DisplayAlerts为False表示为关闭警告,比如在保存时候,提示我们已经有相同文件了,是否保存并覆盖,为false表示为不提示警告并覆盖此文件。

    xlapp.DisplayAlerts = False

    Win32com之工作簿工作表的操作

    打开指定路径wkb_path的excel文件,这里的wkb_path为全路径

    wkb = xlapp.Workbooks.Open(wkb_path)

    新建一个工作簿:

    wkb_new = xlapp.Workbooks.Add()

    保存工作簿:

    wkb.Save()  #保存已有的工作簿

    wkb_new.SaveAs(new_path)  #保存新的工作簿到指定的new_path下

    新建一个工作表:

    wkb_new.Worksheets.Add().Name = sheet_name

    关闭工作簿:

    wkb.Close()

    xlapp.Quit()

    退出excel应用程序

    Win32com之单元格的操作

    这里first_range指定区域的第一个单元格

    first_row = old_wkb_sheet.Range(first_range).Row   #取得old_wkb_sheet表中单元格first_range的行

    first_row = old_wkb_sheet.Range(first_range).Column   #取得old_wkb_sheet表中单元格first_range的列

    last_row = old_wkb_sheet.Range(first_range).End(-4121).Row  #取得old_wkb_sheet表中单元格first_range的向下有数据区域的最大行

    last_col = old_wkb_sheet.Range(first_range).End(-4161).Column    #取得old_wkb_sheet表中单元格first_range的向右有数据区域的最大列

    old_wkb_sheet.Range(current_range).Copy()  # 复制old_wkb_sheet表中current_range区域的值

    new_wkb_sheet.Range(current_range).Paste()  # 粘贴到new_wkb_sheet表中current_range区域中,Paste为全粘贴,包括格式数值等等

    ****额外小延伸****

    vba中的Paste有sheet的Paste和range的Paste,在进行跨表复制粘贴的时候,只能用sheet的Paste,而跨表粘贴,则需要先激活需要粘贴的工作表

    old_wkb_sheet.Range(current_range).Copy()

    new_wkb_sheet.Range('A1').Select()

    new_wkb_sheet.Range(new_current_range).Paste

    当然,在用Paste的时候,会把包含格式公式的数据一起复制过去,但是这并不是想要的结果,事实上,我只想要数值和格式,这时候就需要用到PasteSpecial选择性粘贴了,

    我们先了解下PasteSpecial有那些常量:

    Paste xlPasteType常量,指定复制的具体内容。默认为全部复制。

    1. 全部 xlPasteAll
    2. 公式 xlPasteFormulas
    3. 数值 xlPasteValues
    4. 格式 xlPasteFormats
    5. 批注 xlPasteComments
    6. 验证 xlPasteValidation
    7. 所有使用源主题的单元 xlPasteAllUsingSourceTheme
    8. 边框除外 xlPasteAllExceptBorders
    9. 列宽 xlPasteColumnWidths
    10. 公式和数字格式 xlPasteFormulasAndNumberFormats
    11. 值和数字格式 xlPasteValuesAndNumberFormats
    12. 所有合并条件格式 xlPasteAllMergingConditionalFormats

    Operation xlPasteSpecialOperation常量,指明粘贴时要进行的运算操作,即将复制的单元格中的数据与指定单元格区域中的值进行加减乘除运算。

    1. 无 xlPasteSpecialOperationNone
    2. 加 xlPasteSpecialOperationAdd
    3. 减 xlPasteSpecialOperationSubtract
    4. 乘 xlPasteSpecialOperationMultiply
    5. 除 xlPasteSpecialOperationDivide

    而在python中要使用vba常量,则必须使用EnsureDispatch的启动方式,使用常量则要导入

    from win32com.client import constants

    那么来了,使用PasteSpecial来进行选择性粘贴,可以这样操作:

    old_wkb_sheet.Range(current_range).Copy()

    new_wkb_sheet.Range('A1').Select()

    new_wkb_sheet.Range(new_current_range).PasteSpecial(Paste = constants.xlPasteValues,Operation = constants.xlNone)

    new_wkb_sheet.Range(new_current_range).PasteSpecial(Paste = constants.xlPasteFormats,Operation = constants.xlNone)

    new_wkb_sheet.Range(new_current_range).PasteSpecial(Paste = constants.xlPasteColumnWidths,Operation = constants.xlNone)

    这里我进行了三次粘贴,一次数值,一次格式,一次列宽,就可以完成只保留数值格式的操作,列宽只是为了让它完美好看。

    ****小延申****

    那么怎么通过复制的方式,复制一张工作表呢?

    首先选择要复制的工作表的全部数据进行复制:

    wkb.Worksheets(sheetname).Cells.Copy()

    激活新的工作表

    wkb_new.Worksheets(sheetname).Select()

    粘贴

    wkb_new.Worksheets(sheetname).Paste()

    *****************************************以下是完全的代码***********************************

      1 import os
      2 import win32com
      3 from win32com.client import Dispatch,constants
      4 
      5 path = r"\\10.250.50.23\共享\qsl\数值"
      6 path_a = r"\\10.250.50.23\共享\qsl\数值\大表_EM_V3.xlsx"
      7 
      8 #横坐标转换为数字
      9 def colname_to_num(colname):
     10     if type(colname) is not str:
     11         return colname
     12     col = 0
     13     power = 1
     14     for i in range(len(colname)-1,-1,-1):
     15         ch = colname[i]
     16         col += (ord(ch)-ord('A')+1)*power
     17         power *= 26
     18     return col
     19 
     20 #数字转换为横坐标
     21 def column_to_name(colnum):
     22     if type(colnum) is not int:
     23         return colnum
     24     str = ''
     25     while(not(colnum//26 == 0 and colnum % 26 == 0)):
     26         temp = 25
     27         if(colnum % 26 == 0):
     28             str += chr(temp+65)
     29         else:
     30             str += chr(colnum % 26 - 1 + 65)
     31         colnum //= 26
     32     return str[::-1]
     33 
     34 def wkb_client(path,wkb_path,class_Collection,newwkb_name):
     35         os.system('taskkill /IM EXCEL.exe /F')
     36         xlapp = win32com.client.gencache.EnsureDispatch('Excel.Application')
     37         #xlapp = Dispatch('Excel.Application')
     38         xlapp.Visible = True
     39         xlapp.DisplayAlerts = False # 关闭警告
     40         wkb = xlapp.Workbooks.Open(wkb_path)
     41         print('文件【{}】已打开!'.format(wkb_path))
     42         wkb_new = xlapp.Workbooks.Add()
     43         new_path = path + '\\{}'.format(newwkb_name)
     44         print(newwkb_name)
     45         wkb_new.SaveAs(new_path)
     46         wkb_new.Close(1)
     47         wkb_new = xlapp.Workbooks.Open(new_path)
     48 
     49         for key,vlaue in class_Collection.items():
     50             
     51             sheet_name = class_Collection[key]['sheetname']
     52             first_range = class_Collection[key]['数据区域首行首列']
     53 
     54             old_wkb_sheet = wkb.Worksheets(sheet_name)
     55             wkb_new.Worksheets.Add().Name = sheet_name
     56             new_wkb_sheet = wkb_new.Worksheets(sheet_name)
     57             first_row = old_wkb_sheet.Range(first_range).Row
     58             first_col = old_wkb_sheet.Range(first_range).Column
     59             last_row = old_wkb_sheet.Range(first_range).End(-4121).Row
     60             last_col = old_wkb_sheet.Range(first_range).End(-4161).Column
     61             last_rane = column_to_name(last_col)+str(last_row)
     62             current_range = first_range + ':'+last_rane
     63             print ('当前复制单元格区域为:{}'.format(current_range))
     64             new_current_range = 'A1'+':'+column_to_name(last_col-first_col+1)+str((last_row-first_row+1))
     65             print(new_current_range)
     66             old_wkb_sheet.Range(current_range).Copy()
     67             new_wkb_sheet.Range('A1').Select()
     68             new_wkb_sheet.Range(new_current_range).PasteSpecial(Paste = constants.xlPasteValues,Operation = constants.xlNone)
     69             new_wkb_sheet.Range(new_current_range).PasteSpecial(Paste = constants.xlPasteFormats,Operation = constants.xlNone)
     70             new_wkb_sheet.Range(new_current_range).PasteSpecial(Paste = constants.xlPasteColumnWidths,Operation = constants.xlNone)
     71         wkb.Worksheets(class_Collection['sheet0']['sheetname']).Cells.Copy()
     72         wkb_new.Worksheets(class_Collection['sheet0']['sheetname']).Select()
     73         wkb_new.Worksheets(class_Collection['sheet0']['sheetname']).Paste()
     74         wkb.Save()
     75         wkb_new.Save()
     76         wkb.Close(1)
     77         wkb_new.Close(1)
     78         xlapp.Quit()
     79         print('#更新 成功:%s' % wkb_path)
     80         pass
     81 
     82 
     83 class_Collection = {'sheet1':{'sheetname':'业务经营大表_姓名 (日)',
     84                              '数据区域首行首列':'A17',},
     85                     
     86                     'sheet2':{'sheetname':'组织管理大表_姓名 (日)',
     87                              '数据区域首行首列':'A17',},
     88                     
     89                     'sheet3':{'sheetname':'用户运营大表_姓名 (日)',
     90                              '数据区域首行首列':'A17',},
     91                     
     92                     'sheet4':{'sheetname':'业务经营大表_姓名',
     93                              '数据区域首行首列':'A17',},
     94                     
     95                     'sheet5':{'sheetname':'用户运营大表_姓名',
     96                              '数据区域首行首列':'A17',},
     97                     
     98                     'sheet6':{'sheetname':'组织管理大表_姓名',
     99                              '数据区域首行首列':'A17',},
    100                     
    101                     'sheet0':{'sheetname':'定义说明',
    102                              '数据区域首行首列':'A1',}
    103                     }
    104 
    105 wkb_client(path,path_a,class_Collection,'大表_EM_数值.xlsx')
    
    展开全文
  • [Q&A] 类Range的PasteSpecial方法无效

    千次阅读 2015-01-16 14:31:00
    环境说明: VS2013(C#) + Office2013 Bug说明: ...range2.PasteSpecial(Excel.XlPasteType.xlPasteValues, Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false); 其中 r...

    环境说明:

    VS2013(C#) + Office2013

    Bug说明:

    range1.Copy(Type.Missing);

    range2.PasteSpecial(Excel.XlPasteType.xlPasteValues, Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false);

    其中 range1 和 range2 来自两个 Excel.Applicaton,即想从一个 Excel.Applicaton1 中拷贝数据到另一个 Excel.Applicaton2 中,会出现类 Range 的 PasteSpecial 方法无效的异常;(在 C# 中通过 Excel.Application 可以 New 出来不同线程的 Excel 进程,然后各自处理数据)

    参考解决方法:

    先从 Excel.Applicaton1 的录制宏模拟该操作,然后根据宏代码(VBA)来调整代码;

    在源 Excel.Application1 中进行拷贝的宏代码:

    Sub 宏2()
        Range("F11:J11").Select
        Application.CutCopyMode = False
        Selection.Copy
    End Sub

    然后在另一个 Excel.Applicaton2 中粘贴的宏代码:

    Sub 宏2()
        Range("G13").Select
        ActiveSheet.PasteSpecial Format:="文本", Link:=False, DisplayAsIcon:=False
    End Sub

    在粘贴时会弹出提示框:

    不同Excel进程间的拷贝

    注意,如果是在同一个 Excel 线程下打开的两个 Excel 文件,粘贴时是不会出现该提示框的,可以从任务管理器中查看是否是同一个 Excel 线程。

    通过上面两端 VBA 代码可以知道,Excel 在处理不同进程之间的粘贴时,是通过 WorkSheet.PasteSpecial 方法处理的;所以在 C# 中将拷贝代码改为如下:

    sourceRng.Copy();
    targetRng.Select();
    m_TargetSheet.PasteSpecial("文本", false, false);

    即先对数据源 Range 进行 Copy,然后选择要粘贴的 Range,再进行粘贴。

    转载于:https://www.cnblogs.com/memento/p/4228655.html

    展开全文
  • Office里面,我经常会用到“选择性粘贴为无格式文本”(Paste Special as Unformatted Text)的情况。 很麻烦,每次都要点好几次鼠标,就是木有快捷键。 网上有人说了用宏来做, 没错。 可我很懒,就看看有...

    Office里面,我经常会用到“选择性粘贴为无格式文本”(Paste Special as Unformatted Text)的情况。

    很麻烦,每次都要点好几次鼠标,就是木有快捷键。

    网上有人说了用宏来做,

    没错。

    可我很懒,就看看有没有人有类似的工具,

    很好。

    我找到了,叫做Pure Text。

    链接:http://www.stevemiller.net/puretext/

    Download the latest version here:

    PureText 2.0 for Windows 95/98/Me/NT/2000/XP/2003/Vista [13k]

    Have you ever copied some text from a web page or a document and then wanted to paste it as simple text into another application without getting all the formatting from the original source? PureText makes this simple by adding a new Windows hot-key (default is WINDOWS+V) that allows you to paste text to any application without formatting.

    After running PureText.exe, you will see a "PT" tray icon appear near the clock on your task bar. You can click on this icon to remove formatting from the text that is currently on the clipboard. You can right-click on the icon to display a menu with more options.



    The easiest way to use PureText is to simply use its hot-key to paste text instead of using the standard CTRL+V hot-key that is built into most Windows applications. To configure PureText, right-click on its tray icon and choose "Options" from the pop-up menu. The default hot-key is WINDOWS+V, but this can be changed. In this Options window, you can also configure PureText to run each time you log into Windows.




    What PureText Will and Will Not Do

    PureText only removes rich formatting from text. This includes the font face, font style (bold, italics, etc.), font color, paragraph styles (left/right/center aligned), margins, character spacing, bullets, subscript, superscript, tables, charts, pictures, embedded objects, etc. However, it does not modify the actual text. It will not remove or fix new-lines, carriage returns, tabs, or other white-space. It will not fix word-wrap or clean up your paragraphs. If you copy the source code of a web page to the clipboard, it is not going to remove all the HTML tags. If you copy text from an actual web page (not the source of the page), it will remove the formatting.

    PureText is basically equivalent to opening Notepad, doing a PASTE, followed by a SELECT-ALL, and then a COPY. The benefit of PureText is performing all these actions with a single Hot-Key and having the result pasted into the current window automatically.

    展开全文
  • 'Worksheet.Paste 方法 '将“剪贴板”中的内容粘贴到工作表上。 '表达式.Paste(Destination, Link) '表达式 一个代表 Worksheet 对象的变量。 Sub 粘贴() Range("B1:B6").Copy Range("c9") '这一句等于...
  • VBA做日报

    千次阅读 多人点赞 2019-01-22 21:45:57
    前言:有个同事需要每天做日报,但是电脑又因为种种原因用不了power query,所以就用VBA帮他写了一段代码 报表成品如下图: 其实东西并不多,只有8列数据,用power query大概也就15分钟的时间,可是VBA我写了...
  • WPS EXCEL中的VBA编程

    千次阅读 2013-09-11 17:47:52
    原本excel中的宏在wps中不能正常使用,没办法,任务落到了从没有接触vba编程的我手中。 我安装了wps2013个人版+vba插件。 1,问题描述  Set MyPivotTable = MyPivot.PivotTableWizard(SourceType:=xlDatabase, ...
  • VBA用Copy方法进行复制粘贴,往往会导致粘贴的数据没有了行高和列宽。那么,当我们要进行复制粘贴时,如何保证粘贴的数据保留原有的格式(包括行高列宽都不能变)。 笔者以一个模板设计为例进行说明。 模板表如图1 所...
  • VBA,excel中选择特定内容复制粘贴

    万次阅读 2017-11-11 15:50:37
    & ROW1).PasteSpecial Paste :=xlPasteFormulas Application.CutCopyMode = False 把填充的公式显示的数值复制到C:C列 Sheets( "sheet2" ). Select ROW2 = Range ( "C" & Rows. Count ). End ...
  • Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 代码自己手工改改,如下: Sheet1.Range("C18").Copy Sheet1.Range("C18").PasteSpecial Paste:=...
  • d56").Copy Sheets(2).Range("Q" & k +1).PasteSpecial Paste:=xlPasteValues wb.Worksheets(wsnum).Range("d4").Copy ‘copy D4单元格的东西 Sheets(2).Range("D" & k +1).PasteSpecial Paste:=xlPasteValues wb....
  • Excel VBA Range单元格操作实例

    千次阅读 2020-02-16 21:51:53
    四、Range操作 4.2取得最后一个非空单元格 xlDown/xlToRight/xlToLeft/xlUp Dim ERow as Long ...注意:使用PasteSpecial方法时指定xlPasteAll(粘贴全部),并不包括粘贴列宽 Sub CopyWithSameCol...
  • Sub VBA小程序_遍历所有工作表_复制粘贴为数值() Dim sht As Worksheet For Each sht In ... sht.Cells.PasteSpecial Paste:=xlPasteValues Cells(1, 1).Select Next Application.CutCopyMode = False En.
  • 下面介绍通过VBA,如何自动化跨工作簿复制粘贴及排序。 图一 图二 将图一工作簿中三个子表含有公式的数据,复制粘贴数值到图二的表1,并进行排序,可以直接点击图二中执行的控件即可完成;以下是VBA脚本的实现...
  • 如何利用VBA自动生成PPT报告

    千次阅读 多人点赞 2019-06-23 10:06:36
    本文是继python(多级表头)之后的另一个项目,主要是利用VBA实现自动更新PPT模板的功能。主要是常规的PPT太多了, 不想把时间浪费在Ctrl+C 和Ctrl+V 之间,唯有想想自动化的可行性了; 一开始时候是希望用Python...
  • EXCEL按值和源格式粘贴的时候 包含了按值和数字格式 + 外观样式(主题) vba代码实际如下, 是分两步走的 Range(“H5”).Select Selection.Copy Range(“K5”).Select ...Selection.PasteSpecial Paste...
  • VBA汇总excel文件

    2020-12-02 01:00:40
    VBA 汇总指定文件夹中的工作簿中的“结算情况”表 Option Explicit Sub zhantie() Dim start start = Timer Dim mypath As String, myname As String '遍历文件夹内工作簿 Dim hangshu As Long, N As Integer, ...
  • VBA - 粘贴为数值型

    千次阅读 2017-03-26 16:42:26
    Private ...' r.PasteSpecial Paste:=xlValues Next ' 取消拷贝状态 - 方式2 ' Application.CutCopyMode = False Application.ScreenUpdating = True '开启屏幕刷新 End Sub
  • 大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,第NO.118-NO.120则,内容是:在复制单元格区域时,如何仅复制单元格区域的数值、使用直接赋值的方法选择性粘贴数值、在单元格区操作时,如何对...
  • 利用VBA快速整合多个excel文件

    万次阅读 2019-08-25 15:55:36
    心得(一):关于VBA如何把同一个文件下的所有文件的内容合并到同一个excel文件下 问题:如何把多个格式相同的excel整合到一个excel上,起初想的是可以直接用复制粘贴……但是文件有几百个将近一千个,这么做的话有点...
  • 利用VBA操作OutLook批量发送工资条

    千次阅读 2019-07-15 21:59:09
    最近帮朋友做了类似功能,利用VBA操作OutLook批量发送工资条,极大节省了人力。正好来总结一下,希望为大家所用。(本篇文章默认读者电脑已经可以进行手动发送邮件,不讲解OutLook如何配置邮箱,设置发件人等信息) ...
  • VBA在Excel中的应用用VBA将所有工作表去公式并保留原显示格式问题描述1.在“开发工具”选项卡中选择”Visual Basic”2.插入模块运行结果 用VBA将所有工作表去公式并保留原显示格式 问题描述 出于各种各样的原因,...
  • OFFICE Excel表格中常用的vba代码集锦

    千次阅读 2019-08-06 12:15:33
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub 12.删除特定行 在原有数据上直接修改 Sub ffa() '删除对应行 row_num = [a65536]....
  • 我们在日常工作中经常会碰到excel自带公式无法解决的问题,在面对大量数据需要整理计算的时候会消耗大量的时间,如果你了解vba的一些技巧,就可以减少很多工作量。本篇文章将会带你进入一个简单、易懂的自动化世界。...
  • VBA整理EXCEL数据

    千次阅读 2015-10-11 16:59:13
    每个月初公司都会总结上个月的销售明细。店铺传过来的数据都会以下表的形式从销售系统中的报表导出Excel表。如果有缺失数据的,再由...后来想了想通过VBA来完成这个简单却又枯燥废时的工作。 思路是这样的:首先,在
  • VBA:通过数组和字典快速填充数字

    千次阅读 2019-09-12 09:52:57
    前言:最近有一项新工作,需要填充如下的表格 上面只是一个代理商而已,而同样的...当然用power query固定化模板后也是可以操作的,但是我想试试VBA,所以写了以下的代码,通过数组和字典快速填充数字。 Sub 数据快...
  • excel-vba的常用功能普通功能变量定义日期计算插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的...
  • Excel之VBA简单宏编程

    万次阅读 多人点赞 2018-06-05 01:26:32
    Excel之VBA简单宏编程 excel是一款很经典的数据分析的工具,里面包含了很多内置函数,但实际情况有时却复杂得多,而excel的宏编程提供了自定义函数的功能,正好有老师需要帮忙做一些数据分析,就学习了一下,下面是...
  • VBA中使用Range时遇到的1004错误

    千次阅读 2011-06-03 09:10:00
    最近在用VBA编写个小程序,遇到一个奇怪的问题。 如果使用 Sheets("原始数据页").Range("A3:L3") 就正确如果使用 Sheets("原始数据页").Range(Cells(3,1),Cells(3,12)) 就会出现 1004错误 按理说Range的两种表达...
  • VBA运行时错误1004错误

    千次阅读 2009-11-27 12:20:30
    今天帮人做一个VBA宏, 很久没干这活了. Workbooks(dirname).Sheets(i).UsedRange.Copy Sheets(i).Range("A"... Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormat...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 577
精华内容 230
关键字:

pastespecialvba