VBA Excelmacros通过外部文件更新列表

我有一张有两张纸的Excel表格。 隐藏一张表,其中包含名为“位置”的值列表。 在主表单上,我创build了一个从隐藏表单中拉出的下拉菜单。

如何将这些值存储在外部文件(Excel,.txt等)中,这样我就可以打开一个macrosbutton(VBA),它将使用任何/所有新的位置值replace/更新隐藏工作表上的列表存储在一个外部文件?

我相信这是你正在寻找的东西:

Dim intPointer as Integer Dim strFileToImport as String Dim strLine as String intPointer = FreeFile() Open strFileToImport For Input Access Read Lock Read As #intPointer Do Until EOF(intPointer) Line Input #intPointer, strLine SheetWithLocations.Cells(lngRow, 1).Value2 = strLine lngRow = lngRow + 1 Loop 

它打开一个名为strFileToImport的外部txt文件,并从txt文件中逐行读取,并将其写入到SheetWithLocations中。

假设包含位置的外部文件的文件path是:“D:\ Location.xls”

Location.xls只有一张名为“sheet1”的图纸,其结构如下:

地点
 E:\ 123.txt 
 C:\ MyFolder文件\ MyOtherFile.xls 
 d:\ MyFile.xls 
 。
 。
等等

并且具有两个工作表的工作Excel文件的文件path(如上所述)是“D:\ MyWokingFileName.xls”

正如你所说的'MyWokingFileName.xls'有两张纸,假设这些纸张是'sheet1'和'sheet2',而sheet2是隐藏的。

现在,您需要Sheet1上的一个MacroButton来更新MyWokingFileName.xls的sheet2中的值。

所以macros代码将是:

 Private Sub macroUpdateLocations () Dim myCon As New ADODB.Connection Dim myRs As New ADODB.Recordset Dim iCounter As Long myCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Location.xls;Extended Properties=" & """Excel 8.0;HDR=Yes;IMEX=1;""" & ";" Set myRs = myCon.Execute("SELECT * FROM `Sheet1$`") Worksheets("sheet2").Range("A:A").ClearContents Worksheets("sheet2").Range("A1").Value = "Locations" iCounter = 2 Do While Not myRs.EOF Worksheets("sheet2").Range("A" & CStr(iCounter)).Value = myRs(0) iCounter = iCounter + 1 myRs.MoveNext Loop End Sub myRs.Close Set myRs = Nothing myCon.Close Set myCon = Nothing