如何将特定数据从Excel文件导入到文本文件,并通过一个宏

时间:2016-12-19 12:34:44

标签: vba excel-vba excel

我是VBA的新手,所以没有好主意。我编写了一段代码但是我无法按照自己的意愿执行特定的任务。如果有人帮助我,那么我将感激你。 任务:

我想只开发一个自动

的宏

1-将特定单元格中的数据从Excel工作表导入.txt文件。

2-将创建的.txt文件中的数据导入新的excel文件。 (注意不想在同一个excel文件中获取数据我想要一个新的excel文件打开其中的数据)。

enter image description here

我为从excel文件中的特定单元格导入数据而编写的代码正在生成文本文件,其中我无法获得单独的列(如图2中单独的列所示)。这段代码给了我数据,但只有1列,但我想在2个单独的列中获取数据。

我的代码的第二部分用于将数据从文本文件复制到Excel工作表,但是正在复制相同的Excel工作表数据意味着在同一个excel工作簿中但在该工作簿中的不同工作表但我希望该数据应该复制到其他一些工作簿中/自动生成的新excel文件/工作簿。

重要每次更新Excel工作表中的数据时,生成的.txt文件和新的Excel文件中的数据也应该不断更新。请查看附加的图片/图片。

我的代码

Private Sub CommandButton1_Click()

Dim rng As Range
Dim Sourceworksheet As Worksheet
Dim DestFile As String
Dim cel As Range

Application.DefaultFilePath = "C:\Libraries\Documents\"

DestFile = Application.DefaultFilePath & "\Test.txt"
Open DestFile For Output As #1

Set Sourceworksheet = ActiveWorkbook.ActiveSheet
Set rng = Range("A6:B40")

For Each cel In rng.Cells
    Write #1, cel.Address & "|" & cel.Value2
Next cel
Close #1

MsgBox "txt file exported"

Dim X As Double
Dim TXT As String

Open "C:\Users\Documents\Test.txt" For Input As #1

X = 0
Do While Not EOF(1)
    Line Input #1, TXT
    Cells(1, 1).Offset(X, 0) = TXT
    X = X + 1
Loop
Close #1

End Sub

1 个答案:

答案 0 :(得分:0)

快速提问(将在代码中做出假设):

.1)您是否有一个使用的文件并更新(固定名称)?

.2)您创建的文件是否确实需要自动更新?

.3)为什么需要单独的电子表格?在现有的工作簿中甚至可以使用新的工作表。

如果您有一个将信息记录到的固定文件,您可以使用所需的标签创建第二个excel文件,然后您可以将值直接链接到固定文件,例如:

A1 ="新TTNR的数量:",然后B1 =" FILEPATH / [FIXED NAME.xlsx] Sheet1!B2"

如果你这样做,你会得到一个提示,加载包含该信息的文件来更新单元格值,Excel将显式提取命名数据。

如果您没有固定的文件名/位置,则可以创建一个宏来动态提取该值和名称。

我想认为上述内容可以帮助您,作为非VBA解决方案。做出的假设是,您有一个固定的文件名,原始数据所在的文件名,以及您的"截断的"文件也可以有固定的名称。