Tag: vba

在excel vba中为另一个工作簿制作function专用

首先,我的英语很抱歉。 我还在学习….我想知道如何使一些function或模数不可用的另一个工作簿。 相比之下,我需要将这些function公开于工作簿内的所有模数。 我让自己清楚? 例如:我需要打开两个包含具有相同名称的函数的工作簿,但是这些函数执行的操作有点不同。

在一个文件夹中find一个文件名,并把它变成一个variables

我试图运行一个macros,将采取我提供的文件夹path,然后将文件在该文件夹中,并使文件名variables。 该文件名variables将被用作VLookup的一部分,以从该文件内的单元获取数据。 下面是我迄今为止发现的代码,但是我一直无法使它工作: Dim FilePath As String FilePath = "____________________" Set wbCodeBook = ThisWorkbook With Application.FileSearch .NewSearch 'Change path to suit .LookIn = FilePath .FileType = msoFileTypeExcelWorkbooks 'Optional filter with wildcard .filename = "*AD*.xlsm*" End With 我得到的对象不支持在代码的Application.FileSearch部分这个动作 。 我也不知道如何把上面的代码,使输出variables。 有没有办法做到这一点?

通过MS Access 2003将查询从Oracle导出到MS Excel

我需要find最快速的方法,通过MS Access 2003将数据从Oracle导出到MS Excel。 行数大约是34,000。 方法1 CopyFromRecordset MyRecordset 时间: 9分钟 方法2 DoCmd.RunSQL "SELECT * INTO TBL_GET_ITEM_INFO FROM _GET_ITEM_INFO" DoCmd.TransferSpreadsheet acExport, 8, "TBL_GET_ITEM_INFO", path, True 时间: 9分钟 有更快的方法吗?

使用date函数计算工作日

以下是我的SQL代码来计算报告的工作日。 我正在尝试使用VBA Excel获得相同的结果。 set @end_date = DATEADD(DD,-DATEPART(dw,GETDATE())+1,GETDATE()) set @begin_date = DATEADD(DD,-6,@end_date) 我试过这个: endDate = DateAdd("D", -DatePart("W", DateValue(Now)) + 1, "DateValue(Now)") startDate = DateAdd("D", -6, "endDate") 但是我不能得到结果!

由于实时数据更新,工作表正在大幅增长

我有电力阅读设备,可以更新从服务器每秒的功率变化到Excel工作表。 我正在运行一个Java程序,它可以访问这个实时数据用于我的调度目的,但是当我访问Excel时,我只需要最后更新的数据。 由于数据每秒都在更新,Excel工作表正在大幅增长。 有没有什么方法可以在Excel工作表或任何工具的帮助下编程删除超出特定限制的所有旧数据,同时保存最近十次左右的最新更新读数(我不想当我的程序试图访问最后一行数据时,任何时候都会返回null – 所以Excel中总是有读数)?

将combobox下拉列表值添加到新行

嗨,我知道这听起来可能听起来很容易,但因为我是新的VBA,因此我需要一些帮助,在调整用户窗体vba代码下面的combobox下拉列表值插入新行。 目前我有一个添加命令button,将所有input的用户窗体添加到find的新行。 我现在面临的当前问题是我需要在add命令button中为comboBox行“.Text”进行调整,以使其顺利运行。 下面的代码,我已经和我现在面临的问题,我已经评论了线。 Private Sub CommandAddButton1_Click() Dim sh As Worksheet: Set sh = ThisWorkbook.Sheets("Program Status Summary") Dim emptyRow As Integer: emptyRow = 1 + sh.UsedRange.Find(ComboBoxProjSizes.Text).End(xlDown).Row With sh .Cells(emptyRow, "A").Value = 1 + Application.Max(.Columns(1)) ' to generate a new identifier in column 1 .Cells(emptyRow, "B").Value = TextBoxProjCode.Text .Cells(emptyRow, "C").Value = TextBoxProjName.Text .Cells(emptyRow, "D").Value = TextBoxSector.Text […]

比较不同页面上的列

我在Sheet1中列A的帐号数量是可变的,我想在Sheet2列A中将它们与可变数目的帐号进行比较。 我想整理sheet3上的两列,但不重复帐户号码。 所以基本上: 工作表Sheet1: A1 a3334 a4455 a76655 Sheet2中: A1 a4455 a76655 a3024 a53525 那么sheet3最终会看起来像: 表Sheet 3: A1 a3334 a4455 a76655 a3024 a53525 提前致谢。

Excel VBA:从集合中检索自定义对象

我有一个Person对象,包括姓,名和部分。 这些商店在Excel表中的列,但我需要提取这些并将它们作为Person对象的集合传递。 我可以创build对象,显然将其中的39个添加到集合中,但是当我对集合进行foreach时,我什么也得不到。 我有debug.print似乎显示单个对象正在创build好,但是当我打印出检索到的对象时,我得到39行的空白。 Public Function PeopleList() As Collection Set PeopleList = New Collection Dim newPerson As Person Set newPerson = New Person 'hide active sheet and go to sheet holding class information SwitchSheets lastLine = GetFirstFreeLine(SHEETNAME, 1) For x = 2 To lastLine newPerson.idNumber = Worksheets(SHEETNAME).Cells(x, 1) newPerson.Forename = Worksheets(SHEETNAME).Cells(x, 2) newPerson.Surname = Worksheets(SHEETNAME).Cells(x, […]

从一个工作簿复制到另一个工作簿

这应该在文本工作簿中抓取一个范围,然后将其粘贴到主文件夹中: Sub activateMacro() Dim masterWKB, copyWKB As Workbook Set masterWKB = ThisWorkbook Dim masterWKS, copyWKS As Worksheet Set masterWKS = Worksheets("Data") Dim lastLineCopy, lastLineWKB As Long Dim pasteRange As Range Dim listofFileNames As Variant listofFileNames = buildfilenameArray for i = 0 to Ubound(listofFileNames) lastLineWKB = masterWKS.Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row + 1 Debug.Print lastLineWKB […]

在列标题下插入新find的行

嗨,目前我有一个代码,可以帮助我复制和粘贴信息在外部工作簿基于匹配的条件,如“新加坡”新find的行。 代码将查看外部工作簿中的工作表,并search列中具有“新加坡”的所有行,并将其粘贴到另一个工作簿中。 但我现在面临的问题是,正在复制和粘贴的行与我的列标题重叠,而不是插入到工作表的最后一行。 以下是来自外部工作簿的信息将被粘贴到的图像。 但是,当我运行如下代码: Sub UpdateNewUpcomingProj() Dim wb1 As Workbook, wb2 As Workbook Dim ws1 As Worksheet, ws2 As Worksheet Dim copyFrom As Range Dim lRow As Long '<~~ Not Integer. Might give you error in higher versions of excel Dim strSearch As String Set wb1 = Application.Workbooks.Open("U:\Active Master Project.xlsm") Set ws1 = wb1.Worksheets("New […]