Tag: 复制粘贴

使用vba复制和粘贴工作表数组中的特定单元格(使用.find)

下面的代码根据选项卡的颜色select选项卡。 每张纸的格式都一样,只是包含不同的值。 我正在尝试使用.find和offset来查找特定的单元格(它与当前会计周加1相对应),然后将该单元格复制并粘贴为值而不是公式。 下面的代码select需要的选项卡并find正确的单元格,但不会将该单元格复制并粘贴为值。 我试图不具体命名工作表,因为这个代码将在多个工作簿上使用不同的选项卡名称。 Sub freeze() Dim ws As Worksheet Dim strg() As String Dim count As Integer count = 1 For Each ws In Worksheets If ws.Tab.Color = 255 Then ReDim Preserve strg(count) As String strg(count) = ws.Name count = count + 1 Else End If Next ws Sheets(strg(1)).Select Dim aCell As Range […]

Excel VBA代码可将循环中变化范围的值复制/粘贴(转置)到不同的工作表中

我有一个(对我来说)在Excel中做一个相当复杂的任务。 我想复制一个值的范围(转置)到另一个表。 值范围从1到99,总是按升序排列。 任务是有一个VBA,它允许我用我需要的信息来填充这个表单,并且在循环中重复它,直到所有的值被填充为止。用这个我想把一个接近一百万行的表格转换成一个与约。 25000行和约。 100列。 请看我想要做的截图。 第一张照片是数据表(表1)。 我想将列C中值的范围复制到表2中的适当位置。每当名称改变(并且值再次从低端开始)时,在表2中开始新行。 也许这有助于我一直知道范围有多长,因为我知道这个名字出现在多less个样本中(1-99),所以我知道这个范围是例如C2:C6(因为这个名字在5个样本中) ,然后是C7:11(又是5个样本)等 也许你可以帮助我呢? 我无法一个人做。 图片1: 图2:

VBA .range(“公式可以在这里?”)

我的最终目标是让用户从下拉列表中select想要复制的范围,然后点击“添加”button将粘贴到表单上。 我的范围以WorkSheet_RangeName的forms命名,例如“Oil Furnace”的部分将具有名为“DataInput_OilFurnace”的范围。 因此,我所有的范围将以“DataInput_”开头,空格将需要删除。 Sub AddExtraSection() Dim copySheet As Worksheet Dim pasteSheet As Worksheet Dim addSection As Range Set copySheet = Worksheets("Data Input") Set pasteSheet = Worksheets("Add Extra Section") Set addSection = Worksheets("Add Extra Section").Range("C3").Formula = _ "=""DataInput_""&SUBSTITUTE($C$3, "" "", """")" copySheet.range(addSection).Copy pasteSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial End Sub 如果我不能使用公式,我可以将范围名称作为一个特定的单元格(如在我的下拉列表中填充范围名称的公式)? Set addSection = Worksheets("Add Extra Section").ActiveCell.Offset(1, 0).Formula […]

Excel – 使用VB在工作簿之间复制粘贴(转置)

我试图复制一系列单元格的值,然后使用VBA将其粘贴到不同的工作簿上。 但是,该代码仅粘贴第一个复制的单元格,其余的范围留空。 我无法识别我的错误。 这是代码: Sub Data() Dim wbk As Workbook` Dim wks As Worksheet` carp = ThisWorkbook.Path & "\Bases de datos\" a = "Cuadros_de_salida_IMAE.xls" Application.EnableEvents = False Set wbk = Workbooks.Open(carp & a) Set wks = wbk.Worksheets("Activ") Application.EnableEvents = True wks.Rows.Hidden = False b = "D" c0 = 9 c1 = 25 E = "IMAE" […]

VBA从基于条件的命名范围复制到另一个工作表中粘贴Vlaues

我有一个命名范围“数量”(工作表Sheet1,单元格I21:L28)有公式,报告数量在列“L”。 我想search列L值> 0,然后将这些值(连同来自K列的数据)粘贴到另一个工作表(Sheet10)。 下面的代码是closures的,但它粘贴的公式不是值。 请协助。 Sub CopyOnCondition() Dim sh1 As Worksheet, sh2 As Worksheet, c As Range Set sh1 = Sheet1 'Edit sheet name Set sh2 = Sheet10 'Edit sheet name With sh1 For Each c In .Range("L18:L24") If c.Value > 0 Then c.Copy sh2.Cells(Rows.Count, 1).End(xlUp)(2, 1) End If Next End With End Sub

将数据从多个工作簿复制并粘贴到另一个工作簿中的工作表中

我希望你能帮上忙。 我目前有一段代码见下面。 我想要做的是让用户select包含工作簿的文件夹。 然后打开每个工作簿,从每个工作簿中select一个名为“SearchCaseResults”的工作表,将数据从第二行中的每个“SearchCaseResults”复制到最后一个使用的行,并将这些数据粘贴到名为“Disputes”的工作表中另一个文件夹 所以在PIC 1你可以看到三个工作簿英格兰,England_2和England_3这些工作簿中的每一个包含一个工作表“SearchCaseResults”所以我基本上需要的代码是循环通过文件夹打开英格兰工作簿select工作表“SearchCaseResults”复制数据在此工作表中从第2行到最后一个已用行,然后粘贴到另一个工作簿中的“Disputes”工作表,在另一个文件夹中,然后select下一个工作簿England_2select工作簿“SearchCaseResults”在此工作簿中复制此工作表上的数据2最后使用的行然后粘贴在“争议”工作表中从以前的工作表(英国)复制的数据,然后继续此复制和粘贴过程,直到文件夹中没有更多的工作簿。 目前我的代码是打开工作簿,这是很好的,select/激活“SearchCaseResults”工作表,但它只是应对单元格A2来自英国工作表,然后它只是粘贴从最后的数据(我怀疑以前的工作表中的数据正在被粘贴)我的代码可以修改成从A2的每个“SearhCaseResults”工作表复制数据到上次使用的行,然后粘贴到每个下方的“Disputes”工作表其他。 这是我的代码迄今任何和所有的帮助,非常感谢。 码 Sub LoopAllExcelFilesInFolder() 'PURPOSE: To loop through all Excel files in a user specified folder and perform a set task on them 'SOURCE: www.TheSpreadsheetGuru.com Dim wb As Workbook Dim myPath As String Dim myFile As String Dim myExtension As String Dim FldrPicker As FileDialog 'Optimize Macro Speed […]

VBA – 下标超出范围错误

我正在尝试编写一个macros来执行以下操作: 提示用户打开他们的文件,然后添加新的“不匹配”表到文件 find“Cust Bill To ID”和“SAP CMF#”的列名,并将这两列下面的数据存储到两个不同的数组[BTID()和CMF()]中。 如果BTID(i)不等于CMF(i),则复制整行并将其粘贴到“不匹配”页面。 但是具有订阅超出范围错误的数组以及不匹配表仅具有从原始表单复制的列名(数据缺失)。 结果: 码: Sub Mismatch() Dim sht As Worksheet Dim authSht As Worksheet ' Renamed this variable Dim misSht As Worksheet ' Added a worksheet variable Dim i As Integer Dim k As Integer Dim last As Integer Dim BTID() As String Dim CMF() As String Dim […]

Excel VBA复制粘贴后search

我的macros应该简单地复制粘贴一块数据。 我的问题是,它只将数据复制到一列,我不知道如何解决这个问题。 Sheets("Auswertung").Select Daten = Range("L4:R17") Sheets("Übersicht").Select With Application .DisplayAlerts = True .ScreenUpdating = True .EnableEvents = True .Calculation = xlCalculationAutomatic End With For S = 2 To Range("nz85").End(xlToLeft).Column If Cells(85, S) = Sheets("Auswertung").Range("L3") Then Range(Cells(86, S), Cells(98, S)) = Daten Exit For End If 第85行包含date。 我想在某个date复制数据。 Daten包含date的信息,如果“L3”和接下来的6天。 所以一个星期的数据。 我以为我可以简单地把一个星期的数据放入Daten并把它粘贴到一周的第一天,希望它能粘贴下一个6天。 问题是它只能粘贴在一列中的date。 我怎么解决这个问题?

VBA / Excel:dynamic复制公式的可能性

我想用一个单元格复制一个单元到另一个同一行的VBA, 例如 E1 = "=(E441+E747+E750)*-1" to F1 -> = "=(F441+F747+F750)*-1" 但是这个代码片段: Dim r As Excel.Range Dim lRow As Long lRow = tbXlApp.WorksheetFunction.Match("Test", Range("C:C"), 0) 'Line 4 tbXlWs.Cells(lRow, 5).Formula = "=(E441+E747+E750)*-1" For Each r In tbXlWs.Range(tbXlWs.Cells(lRow, 6), tbXlWs.Cells(lRow, 4 + x)) r.Formula = tbXlWs.Cells(lRow, 5).Formula Next r 只需粘贴第4行定义的单元格的公式即可。 回顾一下这个例子,结果就是 E1 = "=(E441+E747+E750)*-1" to F1 -> = […]

复制工作表模板。 在列表中添加标题并重命名工作表

我正在尝试制作大量相同图纸模板的副本,其中表格名称和标题需要从列表中拉出。 我试过在下面说明我的愿望。 基本上我有这个模板在手动重命名工作表名称为1和标题是testing1: 我想这是以某种方式自动化,因为我有大约136张我需要复制和重命名,以及添加标题。 我在想的步骤是:复制工作表“1”,从Vejnavne列表中重新命名为“2”,添加标题testing2.重复,为3,4,5等。 现在名字不应该是testing1,2 …这些被审查,为什么我需要它也从列表中提取数据从Liste med vejnavne。 我已经偶然发现了这个代码片段来复制工作表,它说我将需要重新命名工作表,而不是“工作表1”,我想这一定是可以从名为“Liste med vejnavne” ,A3-A138栏。 Sub Copier() Dim x As Integer x = InputBox("Enter number of times to copy active sheet") For numtimes = 1 To x 'Loop by using x as the index number to make x number copies. ActiveWorkbook.ActiveSheet.Copy _ After:=ActiveWorkbook.Sheets("Sheet1") 'Put copies in front […]