Tag: 范围

Excel VBA清除公式并保留被覆盖的值

我有一些公式的文档从其他表中检索数据。 一些用户用更准确的数据覆盖了这些公式。 我想现在删除从公式中检索的所有数据(所以基本上我想删除公式),只保留手动input的数据。 这怎么可能呢? 我只是知道另一种方式:) 感谢您的帮助,Cestbeau

VBA用不同的范围填充2D数组

我想填充一个未连接的几个命名范围的二维数组。 包含一列和一个不变的行数 码: Range("Range1").Select LastRow = Selection.Rows.count Dim data() as variant Redim data(1 to 4,1 to LastRow) data(1)=Range("Range1").value data(2)=Range("Range2").value data(3)=Range("Range3").value data(4)=Range("Range4").value 它给出了一个主题超出范围的错误,但我不知道为什么?

VBA:引用范围在不同的选项卡时应用程序定义的错误

在这个小节里,我只是做了一些计算。 在不同的工作表中,我已经存储了一些临时数据,并且正在尝试将以下内容定义为一个范围(在代码最底部): MeanVector = Worksheets("TempSheet").Range(Cells(2, 2), Cells(Stocks + 1, 2)) 我得到以下错误:1004应用程序定义或对象定义的错误 尽pipe如此,这是我从一个不同的模块复制的一行代码,所以我知道这个方法本身是可行的。 我认为问题是与床单的激活,我试图在开始时都激活,但没有运气。 我在evry行代码中指定了工作表,所以我不确定为什么它仍然是一个问题? 我也尝试select范围: Set MeanVector = Worksheets("TempSheet").Range(Cells(2, 2), Cells(Stocks + 1, 2)) 所有代码: Sub CalculateOwnPortfolio() Application.ScreenUpdating = False Application.DisplayAlerts = False Application.StatusBar = "Calculating…" Dim MeanVector As Range Dim WeightsVector As Range Worksheets("TempSheet").Activate Worksheets("Own Portfolio").Activate 'Count the amount of stock Stocks = 0 […]

VBA Excel范围偏移量

我有这个: Public Function Gegevens_Ophalen(ByVal ParameterRow As Integer, ByVal KolomLetterSOM As String, ByVal sheetname As String, ByVal Rij As Integer) As Single Dim WB1 As Workbook Dim WB2 As Workbook Dim WS As Worksheet Dim Filter As Object Set Filter = CreateObject("scripting.dictionary") Set Eenheden = CreateObject("scripting.dictionary") Set Processen = CreateObject("scripting.dictionary") Set Looptijd = CreateObject("scripting.dictionary") Set WB1 […]

复制工作表之间的范围,在OriginalSheet的Col-E中searchdate并在列A的date范围之间插入它

我是一个新手,但希望你能帮我打动我的新老板;)。 我的工作有一个程序,输出一堆数据到电子表格(不能改变这一点,我只能得到这个信息),并从该电子表格我被告知手动复制粘贴范围(第一节是A8到H8,第二部分是A9到H9,依此类推)到基于date(同一工作簿)的另一个电子表格中,插入一个新行来粘贴。 工作簿被称为“发票”。 电子表格1 – 原始 – 列如下:空白,空白,空白,参考,date,备忘录,代理,付费。 电子表格2 – 转账 – ,(按datesorting):星期一,date,金额到期,参考,date,备忘录,代理,付费。 所以目前我手动:1.检查原始页面上的date(E栏)2.转到转移页面3.查找它所在的date范围(列A),如果有帮助,date从A20开始。 4.在该date范围内插入新行5.返回到原始页面6.剪切范围AH 7.将其粘贴到单元格AH中新创build的第2页的行中。重新着色新的E单元格为蓝色。 正如你所看到的,两个页面上的DH列是相同的。 如果我们能够将E的价值复制到A(date)中,那将是惊人的,但是我可以没有它。 我一直在试图做一个macros,但我却无法实现。 简而言之,我希望它在原始行E中查找date,在传输行A中查找它,在下面插入一行(date随后往下),然后粘贴A:H范围。 如果有人能够帮助我,我会非常感激,如果他们能告诉我如何循环macros,所以它Row8(数据第一次出现的地方,然后回去做9号行,我会在月球上。如果完全可能的话,我需要从原始页面的单元格Z1中获取标签名称(表格名称),我已经设置了它自动输出。它必须是macros而不是VBA。 非常感谢! 这是我的录制方法,如下所示: Sub Macro3() 'In the sheet I need to TRANSFER to <- This part is fine Sheets("Transfer").Select 'Manually pick random row <- this needs to be done automatically based on comparing value of […]

Excelmacros将数据粘贴到列X中

我正在寻找一个macros来粘贴一些数据到一个移动的范围。 我已经有一个单元格告诉我下一个非空列的编号,这是我目前使用的代码: Dim OpenFileName As String Dim wb As Workbook 'Select and Open workbook OpenFileName = Application.GetOpenFilename() If OpenFileName = "False" Then Exit Sub Set wb = Workbooks.Open(OpenFileName) 'Get data EXAMPLE ThisWorkbook.Sheets("Teleselling 17").Range("I9:I289")*this should be dynamic, I want to paste data in a moving range*.Value = wb.Sheets("TELESELLING INBOUND").Range("L9:L289").Value wb.Close SaveChanges:=False MsgBox ("Done!")

VBA – 添加新列然后COPY单元格,然后SUM单元格

我正在尝试创build一个新的列,将多个值合并到一个列中。 下面的代码在我需要的地方创build一个新列没有任何问题。 然而,在每个新创build的列中,我希望我的代码将同一行中的前5个单元求和。 它目前工作,但是是静态的(在下面的例子中新的列是G,它总结B:F)。 我想我需要一些内置的Offset函数来允许它的范围是dynamic的(前5列),因为它遍历整个工作表。 此外,我很喜欢它从第1-9行的列头信息复制到新列的左侧,并将新的列中的单词“组合”放在第10行。 Office 2013 任何帮助这个努力将是伟大的。 谢谢 Dim currentColumn As Integer Dim columnHeading As String For currentColumn = Sheets("SLTData").UsedRange.Columns.Count To 2 Step -1 columnHeading = Sheets("SLTData").UsedRange.Cells(10, currentColumn).Value 'CHECK WHETHER TO KEEP THE COLUMN Select Case columnHeading Case "PD.G0100", "PD.G0500", "PD.G0800", "PD.G0900", "PD.G1000", "PD.G0300", "PD.G0400", "PD.G0150", "PD.G0600" 'Do nothing Case Else If InStr(1, […]

从范围variables中查找第一行和最后一行数字

我有一些代码,我正在与excel范围保存在variables中。 我需要一种方法来查找这些范围variables的第一行和最后一行。 如果可能,我宁愿不使用xlend(down).row方法。 我想我可以把它放到一个数组中,并获取lbound和ubound的值,但是对于一个非常简单的任务来说,这看起来像很多工作。 任何简单的解决scheme的问题? 这就是我所举的例子: sub test() dim r as range dim x as integer dim y as integer set r as worksheets("sheet1").Range("A1:A7") x = r.rows 'this gets me the first row in the range y = r.lastrow 'this isn't valid, but I need something that will do the equivalent of this pseudo code […]

VBA分割范围expression式

假设我有一些expression式填充这样的单元格: Dim Sample1 As String Sample1 = "1-4,5+6,9,12-20" Dim Sample2 As String Sample2 = "1-7,8,30,20+21,45" Dim Sample3 As String Sample3 = "1-7,8,11-17" 将该expression式转换为包含指定数字的数组的最佳方法是什么? 所以例如对于Sample1,这个expression式的数组应该包含这些值: 1,2,3,4,5,6,9,12,13,14,15,16,17,18,19,20 我的第一个尝试是用逗号分割expression式,然后试着弄清楚“ – ”和“+”的左右是什么,但也许有更好的办法? 你能给我一些build议如何做到最好?

清除特定行中的内容vba

我正在与VBA的excel工作。 我有一个代码,应用一些filter和一些公式。 那部分工作。 问题出在打印部分。 我需要打印10行(只有一个例子可能更多或更less),但是我有15行(也只是一个例子)以前的行。 所以我需要覆盖前10行,我做得很好,然后删除在这种情况下只有5(但可能是15,30或更多)的其余行。 我也只需删除特定范围的列之间的信息作为从A:AL中删除的示例。 我正在使用这个: Worksheets("Extract").Columns("A:AL").ClearContents