Tag: vba

如何检查VBA模块是否被修改?

我有一个Excel工作簿,我希望每次closures工作簿时导出代码,但是我希望有select地这样做,以便每个模块只有在工作簿打开后才被修改的情况下才能导出。 我希望能够使用导出的文件来运行代码上的差异,我假设每次重新导出将导致文件始终被标记为不同。 下面是一些伪代码的尝试,以显示我的意思: for each module in Workbook if module.isModified() then module.export end if next module

date和格式function

我有一个combobox(下拉列表)在用户窗体上列出昨天的当前date和date。 代码如下: With currentDate .AddItem Date .AddItem Date – 1 End With 由于这将返回系统date,所以我在格式化时遇到了问题,因为macros在不同的计算机上使用,并且它们具有不同的系统date格式。 对于某些date格式是“mm / dd / yyyy”,例如“2015年11月4日”,有些系统date格式是“dd / mm / yyyy”,例如“04/11/2015”。 即使系统date格式设置为“mm / dd / yyyy”,我也需要combobox显示“dd / mm / yyyy” 我试过这样做: datefor = Date datefor = Format(datefor, "dd/mm/yyyy") With currentDate .AddItem Date .AddItem Date – 1 End With 但是我不断收到错误。 有任何想法吗?

目标寻求macros观,改变单元格引用不是硬性的价值

我正在努力为我的excel模型寻找一个macros的目标。 有没有可能创build一个macros,这个ChangingCell不是一个硬性的值,而是一个指向一个硬值的平等的公式。 Range("D1").GoalSeek Goal:=0.17, ChangingCell:=Range("D424") 所以在这种情况下,单元格D424会变成另一个有难度的单元格。 我可以直接将ChangingCell设置为D424的原因是,根据文件上的各种select,更改单元格的目标查找引用发生更改。

在另一个文件中参考范围

我在一个打开的Excel文件中有一个macros,并想引用另一个打开的Excel文件中的单元格。 Range("b5").Activate ActiveCell.Value = '[jobpl1.xlsx]Sheet1'!E16 它不能编译。

Excelmacros如果replace公式

我试图replace单元格中的值,所以如果它有0隐藏它。 excel公式如下IF(A1=0;"";A1) 。 我正在尝试这个automaticaly,但我有问题。 到目前为止,我想出了这个: Sub apply_Error_Control() Dim cel As Range For Each cel In Selection If cel.HasFormula Then cel.Formula = Replace(cel.Formula, "=", "=IFF(") & "=0" & ";" & "")" End If Next cel End Sub

“For Each”循环没有循环遍历重复ID的行

这是一个VBAmacros的一部分,它改变了从在线商店导出的订单信息,稍后将其导入到货运经理。 下面的代码正在做什么,如果满足条件,用STL1 / 2代替CRL1 / 2。 出现的问题是,将来自商店的单个订单拆分为列A中每行具有相同订单号的单独行。 macros只处理具有相同订单号的第一行。 Dim Cel7_Lastrow As Integer Cel7_Lastrow = Sheet2.Cells(Rows.Count, 1).End(xlUp).Row Dim Rng As Range Set Rng = Sheet2.Range("A2:A" & Cel7_Lastrow) For Each Cel7 In Rng Dim Lookup_Range2 As Range Country_Name = Cel7.Value2 C_Code = Cel7.Value2 Weight_V = Cel7.Value2 Set Lookup_Range2 = Sheet2.Range("A2:R" & Cel7_Lastrow) Country = Application.WorksheetFunction.VLookup(Country_Name,Lookup_Range2, 8, False) […]

当试图复制工作表时,“下标超出范围”

Private Sub Add_Click() ActiveWorkbook.Worksheets(ComboBox1.Value).Copy Before:=Workbooks(link.Value).Worksheets("Contract") End Sub 这是我100%确定链接和ComboBox1有我正在寻找的值。 有人可以告诉我为什么我不断收到错误“下标超出范围 ”?

在电子邮件中join文本和红色字体

我有代码(下面),作为一个更大的VBA代码的一部分,完美的作品。 不过,我想强调一些粗体的文字,一行红色,我不确定如何。 我想如何看电子邮件: .body = "Hello" & Chr(13) & Chr(13) _ & "The attached PICS and Benefits have been flagged as impacting your business or finance area. As such, these will require your approval before being presented to the funding board as part of the project investment board submission." & Chr(13) & Chr(13) _ & […]

从一个工作表粘贴到另一个不工作

我有一个工作簿(两张表之间)内部的macros。 但现在我想在两个工作簿之间做到这一点。 我认为这个逻辑看起来很好,但是我错过了什么? 它运行所有的代码,我没有得到任何错误,但在同一时间它什么都不做。 Sub CTClearINCIDENTS() Dim ws1 As Workbook Dim ws1sheet As Worksheet Dim ws2 As Workbook Dim ws2sheet As Worksheet Dim lastRow As Long Set ws1 = ThisWorkbook Set ws1sheet = ws1.Sheets("INCIDENTS") ws1sheet.Rows(5 & ":" & ws1sheet.Rows.Count).ClearContents Dim FilePath As String File_Path = "C:\TEMP\TestExcel\Cambridge Daily Tracker " & Format(Now, "dd-MM-yyyy") & ".xlsx" Set […]

以三种不同的方式将XML文件导入Excel

我的XML文件看起来像这样: 当我将这个文件导入Excel时,我得到一个包含其内容的表格。 但是,我需要为每个标签分别使用三个表格: <Header> <MasterFiles> <SourceDocuments> 因为它们看起来像三个相关的表格。 我用来导入文件的代码是: strTargetFile = "C:\SAFT.xml" Set wb = Workbooks.OpenXML(Filename:=strTargetFile, LoadOption:=xlXmlLoadImportToList) wb.Sheets(1).UsedRange.Copy ThisWorkbook.Sheets("Sheet2").Range("A1") 但是如何将XML文件分解成三部分并将每个文件导入到不同的工作表?