Tag: vba

使用VBA通过工作簿文件夹循环访问代码?

我有一个具有相同格式的excel文件的文件夹。 我修改了下面的代码来确定date并重新格式化,其中“i”根据第2列的最后一行确定范围中的单元格数量。 Sub Test() Dim i As Long i = Sheet1.Cells(Rows.Count, 2).End(xlUp).Row With Range("K3:K" & i) .Formula = "=DATE(A3,G3,H3)" .NumberFormat = "ddmmmyyyy" End With End Sub 我想在我的文件夹中的所有工作簿上执行此代码。 我已经find了以下问题在计算器上: 循环遍历指定文件夹中所有excel文件的代码,以及从特定单元格中提取数据的代码 它并没有遍历我的所有文件,只对我打开的第一个excel文件有效。 如何通过文件夹中的所有工作簿循环此代码? 以下是我到目前为止。 Sub Test() Dim lCount As Long Dim wbResults As Workbook Dim wbCodeBook As Workbook Dim i As Long Application.ScreenUpdating = False Application.DisplayAlerts = […]

Excel VBA:错误1004 WorkSheetFunction“无法获取Vlookup属性”

试图在Excel 2010中写一个VBA的快捷方式 使用Vlookup来查找一个值 返回第三列中的值 将给定的单元格设置为此值 我的困难在于公式。 Sub Metrics123() Dim x As Integer x = Application.WorksheetFunction.VLookup("Test", "A7:D9", 3, False) Range("A1").Value = x End Sub 当我运行这个我打error 1004: 'Unable to get the Vlookup Property of the WorksheetFunction 任何指针赞赏!

Excel,Trying Index,Match,用VBA查找值

我试图在单元格位置使用VBA查找值,我之前search谷歌和所有的stackoverflow这个问题之前,因为我似乎无法得到它的工作。 以下是我正在尝试使用的代码,请注意,预算代码引用包含第一列代码之一的单元格,并且引用包含数字(1-12)或包含短代码(ytd,1qtr, 2qtr,3qtr)。 例如,我想拉2月(2)CAD-NS,我应该得到5666.40。 Function eBudgetl(budgetcode As String, mo As String) eBudgetl = Application.WorksheetFunction.Index(Range("Budget!G1:X5000"), _ Application.WorksheetFunction.Match(budgetcode, Range("Budget!B1:B5000"), 0), _ Application.WorksheetFunction.Match(mo, Range("Budget!G1:X1"), 0)) End Function 这是我希望查找的数据的一部分: 1 2 3 4 CAD-NS I Net Sales 5264.0 5666.4 5614.9 5966.6 COSMAT E Material 6207.5 3660.0 3661.9 3560.9 COSDL E Direct Labor 610.4 105.3 167.1 123.6 CAD-MOIL E Indirect […]

访问标准的VBA字枚举

我是VBA新手。 有些教程告诉我使用wdOrientLandscape和wdRowHeightExactly这样的枚举常量(分别改变页面方向和使行高为“精确”)。 但是,在debugging时,我可以看到这些常量的值是空的,并且不像预期的那样工作。 我需要做一些特殊的事情来访问这些常量,例如添加一个引用或其他东西? 我从Excelmacros创build一个Word文档。 提前致谢

如何在VBA中处理可选的XML属性?

我已经写了一些代码来从XML文件导入一些数据到Excel中,直到它试图读取不存在的属性。 他们在文件中是可选的,我不能添加它们,所以我需要在代码中处理它。 我试着用If Is Not Nothing处理对象,但这不起作用, If <> ""或者If <> Null没有运气。 如果有人能给我任何帮助,我将非常感激。 Public Sub import() Dim oDoc As MSXML2.DOMDocument Dim fSuccess As Boolean Dim oRoot As MSXML2.IXMLDOMNode Dim oSoftkey As MSXML2.IXMLDOMNode Dim oAttributes As MSXML2.IXMLDOMNamedNodeMap Dim oSoftkeyName As MSXML2.IXMLDOMNode Dim oSoftkeyDescriptor As MSXML2.IXMLDOMNode Dim oSoftkeyStyleName As MSXML2.IXMLDOMNode Dim oChildren As MSXML2.IXMLDOMNodeList Dim oChild As MSXML2.IXMLDOMNode […]

避免在各种工作表中设置单元格中的循环

我可以在多个工作表中将特定的单元格设置为相同的值,而无需使用如下所示的循环: Sub ThisWorks() Sheets(Array("Sheet1", "Sheet3")).Select Sheets("Sheet1").Activate Range("B9").Select ActiveCell.FormulaR1C1 = "=""x""" End Sub 运行上面的macros将在Array()中包含的工作表中的所有B9中放置相同的值 我正在尝试通过创build和使用与上面的代码等效的对象来做同样的事情: Sub ThisPartiallyWorks() Dim obj As Object Set obj = Sheets(Array("Sheet1", "Sheet3")) obj.Select Range("A2").Formula = "=""x""" End Sub 这运行没有错误,但只有一个工作表获取所需单元格中=“x” 。 我究竟做错了什么?? 编辑#1 瓦西里的邮报给了我线索…………….这个版本似乎工作: Sub Finally() Dim obj As Object Set obj = Sheets(Array("Sheet1", "Sheet3")) obj.Select obj(1).Activate Range("B9").Select ActiveCell.FormulaR1C1 = "=""x""" End Sub […]

VBA – 显示一个子文件运行的时间

我正在尝试使用下面的代码来显示一系列命令运行多长时间。 在这个例子中,我期望它回到“10”或类似的东西。 相反,它回来了: 发生了什么事情,如何正确格式化? Sub timeyWimey() Dim t1 As Date Dim t2 As Date Dim timeTaken As Date t1 = Now() Application.Wait (Now + TimeValue("0:00:10")) t2 = Now() timeTaken = t2 – t1 MsgBox timeTaken End Sub 编辑: 最终的代码之后, Sub timeyWimey() 'Dim t1 As Double 'Dim t2 As Double t1 = Now() Application.Wait (Now + […]

从列中查找值并快速返回其单元格的行号

我拥有的 我有一个零件号和每个零件供应商的文件。 有1500个零件,每个有大约20个可能的供应商。 为了简单起见,假设零件列在A列,每个供应商之后都占用一列。 供应商的价值是手动input,但并不重要。 在另一张表中,我有一个从Access数据库导入的零件列表。 零件清单是导入的,但不是供应商信息。 在这两种情况下,每个部分只出现一次。 我想做的事 我只是想匹配来自第一张工作表的供应商信息与导入列表中的部分。 现在,我有一个函数可以查看供应商列表中的每个部分,将供应商信息复制到一个数组中,在导入的部分列表中find部件号(总是有唯一的匹配项),并将数组复制到其旁边(与供应商信息里面)。 有用。 不幸的是,find函数每次使用都会显着减慢。 我知道这是通过各种testing的罪魁祸首,我不明白为什么它减慢(从200循环每秒开始,减慢到每秒1和Excel崩溃)。 我可能有某种泄漏? 文件大小始终保持7mb。 这里是: Function LigneNum(numAHNS As String) As Integer Dim oRange As Range, aCell As Range Dim SearchString As String Set oRange = f_TableMatrice.Range("A1:A1500") SearchString = numAHNS Set aCell = oRange.Find(What:=SearchString, LookIn:=xlValues, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False) If Not […]

为什么Excel VBA复制到剪贴板不一致?

我有一个非常简单的Excelmacros: 它在一个小窗口中显示当前date和时间。 它将显示复制为文本string,以根据需要粘贴到其他应用程序中。 显示的单元格中有以下公式: =TEXT(NOW(),"yyyy.MM.dd hh:mm:ss") macros5秒钟刷新时间和时钟滴答。 我的问题是,当我从单元格中复制时间时,我并不总是将内容粘贴到剪贴板。 有时单元格内容被张贴到剪贴板。 我无法弄清楚为什么它有时会起作用,而不是别人,因为没有太多事情要做。 它应该总是工作。 我知道数据不在剪贴板上,因为我可以尝试将剪贴板粘贴到不同的程序(如记事本和其他文本应用程序)中,而不会发生任何事情。 整个代码都在一个模块中。 Dim stopSwitch As Integer Dim NextTick Sub myupdate() If ActiveCell.Address = "$B$1" Then growWindow ' resize window beyond just clock display stopTime ' Exit Sub ' stop updating End If Range("a1").Select Calculate DoEvents If ActiveWorkbook.Name = "calendar clock.xlsb" Then shrinkWindow NextTick = […]

什么是工作表。单元格(行,列)。公式

我正在看比较两个Excel工作表的教程 ,碰到这个: cellVal1 = ws1.Cells(row, col).Formula 在video中他说,这将指定单元格的值分配给cellVal1 。 我只看到人们使用ws.Cells(row, col).Value ,似乎无法find任何关于.Cells(<row>,<col>) .Formula做什么的,和.Value不同?