Tag: 复制粘贴

用vba粘贴指定范围的图片

我有以下代码。 我想粘贴这个复制的图片到我在Destinationsheet中select的范围。 不过,我只知道如何通过select.top,.left,.width,.height设置位置。 有没有办法将这个图片粘贴在一个选定的范围内,如G30:J:30? Windows(osman).Activate Sheets("Overview").Range("A30:D37").CopyPicture Dim DestinationSheet As Worksheet Set DestinationSheet = Workbooks(anan).Sheets("Eingabefeld") DestinationSheet.Paste Dim pastedPic As Shape Set pastedPic = DestinationSheet.Shapes(1) With pastedPic .Top = DestinationSheet.Cells(17, 2).Top 'Rest of positioning code here End With

Excel VBAmacros复制/粘贴dynamic范围的静态范围

大家,早安。 我不是在这里活跃,但这是我正在工作的一个项目(这是一个search,复制,粘贴,尝试,编辑,重复)很多 – 这是一个多列构build的表格: Col 1 | Col 2 | Col 3 | Col 4 | … | Col i 第1行| 第1行| 第1行| 第1行| … | 第1行 第2行| 第2行| 第2行| 第2行| … | 第2行 … 行n | 行n | 行n | 行n | … | 第n行 Sub CopySubsectionToTable() Dim CFsh As Worksheet Dim lastcol As […]

删除图片中可能的对象关系? 尝试xlCopy与内存限制

我有一个程序,复制单元格和覆盖地图。 正在复制的区域具有颜色渐变条件,大量数据和重叠的图片对象。 使用代码: range.CopyPicture Appearance:=xlScreen, Format:=xlPicture 使用xlPicture导致代码不能粘贴,并有各种excel错误,如内存和资源限制命中。 range.CopyPicture Appearance:=xlScreen, Format:=xlBitmap XlBitmap另一方面消除了这个错误。 我知道有很多实体要抄袭。 截图是否考虑到捕获范围内的对象属性? 如果有的话,是否有办法减less负载或删除计算?

运行时错误1004'范围类失败的复制方法'

我在我的代码中得到以下错误 运行时错误1004'范围类失败的复制方法' 代码的作用是让用户点击一个打开一个txt框的命令button,并允许用户从文件目录中select一个文件。 然后,第二段代码通过所选工作簿的F列,find一个国家,然后创build一个新的工作表副本,并将该国家的数据粘贴到新工作表中,然后将该工作表的名称返回到F列并重复为其他国家。 如果工作表在65,000或更less,macros表运行完美,但超出了我们所能获得的数据量,那么这个工作表就是280,000行 运行时错误1004'范围类失败的复制方法' 代码错误.SpecialCells(xlCellTypeVisible).Copy ActiveSheet.Range("A1") 'copy data for country under header我的代码可以修改为容纳大量的行 Sub Open_Workbook_Dialog() Dim my_FileName As Variant MsgBox "Pick your TOV file" '<–| txt box for prompt to pick a file my_FileName = Application.GetOpenFilename(FileFilter:="Excel Files,*.xl*;*.xm*") '<–| Opens the file window to allow selection If my_FileName <> False Then Workbooks.Open Filename:=my_FileName Call Filter […]

VBA:如何将两个工作簿之间的复制/粘贴扩展到这两个工作簿的所有工作表

我有大量的Excel工作簿,其中包含25个以上的工作表,每个工作表包含范围为1:500(或某些情况下为1:1000)的20列数据。 我经常负责更新input新数据的“模板”以进行新的计算。 我希望能够将旧工作表中的现有数据轻松地粘贴到具有新格式的工作表中,同时保留新模板中的任何新格式/公式。 我正在使用VBA打开要复制的工作表并将其粘贴到新的模板工作表上。 到目前为止,我的代码将复制要复制的工作簿的第一个工作表(S1)中的所有内容,并将其粘贴到目标工作簿的第一个工作表(S1)上。 我想要扩展这个过程来遍历所有活动工作表(现在对工作簿中的每个工作表进行任何操作)。 我以前能够用不同的代码做到这一点,但它删除了我需要粘贴的行503和506中的公式。我可以做一个pastespecial并跳过空单元格吗? 我是新来的。 这是我目前的代码: Sub CopyWS1() Dim x As Workbook Dim y As Workbook Set x = Workbooks("Ch00 Avoid.xlsx") Set y = Workbooks("Ch00 Avoid1.xlsx") Dim LastRow As Long Dim NextRow As Long x.Worksheets("S1").Activate Range("A65536").Select ActiveCell.End(xlUp).Select LastRow = ActiveCell.Row Range("A2:T" & LastRow).Copy y.Worksheets("s1").Range("A1:A500") Application.CutCopyMode = False Range("A1").Select End Sub 我相信我需要使用类似下面的代码来扩展这个工作表,但我不知道如何迭代通过工作表,因为我在上面的代码中特别引用了两张表。 Sub […]

基于单元值的移动范围

我对VBA相当陌生,只是在同一行中的单元格值为“已完成”的情况下,才开始复制范围的代码。 复制的范围然后粘贴到另一列,原始范围被删除。 如果它可以循环以便在单元格值更改为完成时自动发生,那将会很好。 我的代码到目前为止是: Sub Move() Dim r As Range, cell As Range, mynumber As Long Set r = Range("O1:O1000") mynumber = 1 For Each cell In r If cell.Value = "Completed" Then Range("Q15:AE15").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove If cell.Value = "Completed" Then ActiveCell.Select ActiveCell.Range("B:O").Select Selection.Copy Range("Q14").Select ActiveSheet.Paste End If Next End Sub

VBAmacros – 如果单元格匹配单元格在第三张表复制从工作表部分行到新工作表

所以我对编码不是很了解,但是我很快就学会了,通过捎带现有的代码来创build其他代码,但是这个代码对于我来说太多了。 我需要一些帮助,为excel电子表格写一个VBA,这将为我节省大量的时间来比较和汇总数据。 另一种方法是在工作表中创build多个VLookup&If命令,大家都知道这会导致工作表中的不稳定。 任何帮助将不胜感激。 这里是电子表格的布局: 工作表1 =“3年” 工作表2 =“5年” 工作表3 =“10年” 工作表4 =“15年” 工作表5 =“组合” 工作表6 =“合格资金” 第1行在所有工作表中都是相同的 单元格A2是使用= COUNTA(A3:A1048576)的计数器单元格, 任何行之间都不应该有中断 不知道这是否需要,因为我已经看到在macros中这样做的代码(如果是这种情况,我将删除该行) 工作表1-5中的第2行是相同的。 单元格A2:BF2是列标题 工作表5有5个来自BG:BL的附加列 工作表6包含工作表1-4将要交叉引用的数据 如果有匹配,工作表5将成为复制数据的目标工作表,从第3行开始 这是我想要做的: 在工作表6的行F中逐行search“WMC不符合条件”或“不符合条件的共享类”,如果发现其中任何一个文本,则删除整行 在工作表6的A列中查找工作表1的B列中的文本的匹配(从第3行开始),逐行 如果find,则search工作表5的列B以查看该行是否已经存在 如果该行不存在,则将该行(从Worksheet 1)的列A2:BF2中的单元格复制到Worksheet 5中的第一个空白行,在BG列中input“1”,“= SUM(BG3:BJ3)”在列BK中,然后将工作表6中find的行的列D中的文本复制到Worksheet 5中新行的列BL 对于工作表2,在列BK中input“1”,在列BK中input“= SUM(BG3:BJ3)”,然后将工作表6中find的行的列D中的文本复制到工作表中新行的列BL五 对于工作表3,它将在列BK中的列BI“= SUM(BG3:BJ3)”中input“1”,然后将工作表6中find的行的列D中的文本复制到工作表5中新行的列BL 对于工作表4,它将在列BK的列BJ“= SUM(BG3:BJ3)”中input“1”,然后将工作表6中find的行的列D中的文本复制到工作表5中新行的列BL 如果该行存在,则不要再次复制该行,而是input: 该行BH列中的“1”(如果在工作表2中查找) 该行的BI列中的“1”(如果search工作表3) 该行BJ栏中的“1”(如果正在search工作表4) 移到工作表1中的下一行并重复search 一旦达到工作表1的末尾,移动到工作表2,然后工作表3,最后工作表4 再次,任何帮助将不胜感激。

在工作表上查找最后使用的单元格,并将行复制到另一个工作表中?

任何答复将非常感激。 我的问题如下: 这是确定我的Excel工作表的最后一个非空单元格/行的正确方法? xl.Worksheet sh; int lastRow; int fullRow; sh = xlApp.Workbooks.get_Item("myExcelFile").Worksheets.get_Item("MySheet"); fullRow = sh.Rows.Count; lastRow = sh.Cells[fullRow, 1].End(xl.XlDirection.xlUp).Row; 如果这确实是正确的,我如何把我的行,并将其复制到另一个工作表。 更具体地说,列A的第一个空单元格。我知道我必须使用一个类似这样的命令: lastRow.EntireRow.Copy(FirstEmptyCell); 作为一个inttypes,我不能将其复制到我的其他表。 有什么build议么?

如果单元格值=“N / A”,则复制并粘贴值

我想复制和粘贴值的单元格范围,但只有当它们的值=“N / A”。 我想离开公式,因为他们在所有不是=“N / A”的单元格中。 在上下文中,我有数百个VLOOKUP。 例: =IFERROR(VLOOKUP("L0"&MID(G$4,1,1)&"A0"&MID(G$4,1,1)&MID(G$4,3,2)&"-0"&$B6,Sheet1!$C:$D,2,FALSE),"N/A") 这可能与VBA?

为什么我得到运行时错误'1004'与我的VBA代码复制并从一个工作簿粘贴到另一个?

我有我的macros的VBA代码的问题,我想要打开msoFileDialogFolderPicker和用户select一个文件夹,其中所有的Excel文件将被打开,一个接一个的数据将被从新打开的工作簿复制并粘贴到特定运行macros的工作簿中的工作表。 基本上我们给每个销售代表一个电子表格来填写他们的销售情况,然后把他们的电子表格提交给销售经理。 我想要做的,而不是有人不得不打开每个电子表格,并复制数据,并将其全部粘贴到一个电子表格手动,是简单地有一个macros为我这样做。 由于文件的位置和名称可以更改,我正在尽可能dynamic。 有可能是这样做的更好的方式,所以任何build议非常感谢! 我遇到的问题是,我得到的文件打开,他们复制,但后来我得到一个运行时错误1004'复制方法的范围类失败',当我试图让它粘贴在运行macros的工作簿。 我已经尝试了ThisWorkbook和ThisWorkbook.Activate来尝试告诉Excel去macros的运行的电子表格,但没有解决我的问题。 有时候我会经历错误,但仍然不会粘贴主工作簿中的数据。 我有我的代码写在下面。 无可否认,它主要是从我find的代码中复制出来的,但是我已经试图将其适用于我的目的。 我得到的错误是“wb1.Worksheets(1).Range(”A5“)。select”行。 Sub LoopAllExcelFilesInFolder() Dim wb As Workbook Dim wb1 As Workbook Dim myPath As String Dim myFile As String Dim myExtension As String Dim FldrPicker As FileDialog Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManual Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker) With FldrPicker .Title = "Select […]