如何从.TXT文件中获取所有内容保持前导“ 0”?

爱德华兹

我有这个代码

Dim FileToOpen As Variant
Dim OpenBook As Workbook

FileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")

If FileToOpen <> False Then
Set OpenBook = Application.Workbooks.Open(FileToOpen)
OpenBook.Sheets(1).UsedRange.Select
Selection.NumberFormat = "@"
OpenBook.Sheets(1).UsedRange.Copy
ThisWorkbook.Worksheets("BOM").Range("C1").PasteSpecial xlPasteValues
OpenBook.Close False
End If

这是我尝试自动执行以下操作的方式:

  1. 打开一个.txt文件
  2. Ctrl + a
  3. Ctrl + c
  4. 通过VBA代码将其粘贴到我的工作簿中,在这种情况下不相关。

最后,我得到了这种表(下图中的主工作簿具有.NumberFormat =“ @”):https ://i.stack.imgur.com/98tiC.png

但是,当我使用上面的代码运行它时,最终得到:

https://i.stack.imgur.com/bJahk.png

忽略第1行中的列标题。

我遇到的问题是,上面的代码在一个临时excel工作簿中打开已经丢失的前导“ 0”的.txt文件内容,然后从中将其复制到我的活动工作簿中。

我想知道是否有任何办法可以解决我想要完成的事情,即通过像现在一样通过显示搜索消息框的VBA代码正确地自动化上面列出的手动操作序列,然后选择一个.txt文件,需要并将所有内容从它获取到我的活动工作簿中,同时保持所有前导零(零的数量和字符串的长度可能会有所不同,因此没有将其重新添加回去的解决方案不是我想要的)

尊尼

您遇到的问题是,一旦excel掌握了数据,就会产生问题。

因此,将其读取为文本文件并分割每一行,然后将其直接输出到您的目标范围-为此,它将停止excel将任何字符串解析为值-之后,您可以执行任何操作

option explicit
Sub read_text()

  Dim FileToOpen As Variant
  FileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")
  
  Dim max_cols As Long
  max_cols = 0
  
  Dim r_out As Range
  Set r_out = ThisWorkbook.Worksheets("BOM").Range("C1")
  Dim row_offset As Long
  
  
  offset = 0
  If FileToOpen <> False Then
    Dim fso As Object
    Dim file As Object
  
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set file = fso.OpenTextFile(FileToOpen, 1)
    
    While Not file.AtEndOfStream
      Dim line As String
      line = file.ReadLine
      
      Dim line_arr As Variant
      line_arr = Split(line, vbTab)
      ThisWorkbook.Worksheets("BOM").Range("C1").offset(row_offset, 0) _
             .Resize(1, UBound(line_arr) - LBound(line_arr) + 1).Value = line_arr
      row_offset = row_offset + 1
    Wend
  
    file.Close
  End If

End Sub

输出

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何只更改txt文件中的一列,使其他所有内容保持不变并遵守空格?

如何从名称不包含0的目录中获取所有文件?

如何读取存储在txt文件中的所有内容?

我如何最有效地使用PHP将文件中从0x0到0x ***的所有内容拉出?

如何在excel中粘贴带有前导“0”的文本

如何将文件内容用作变量,但保持“ \ 0”

如何从数字中删除前导0?

如何删除所有内容为 0x00 的文件?

如何获取所有Auth0用户的列表

如何将带有尾随 0 的行号添加到 .txt 文件中?

如何將數據框中的所有 0 (0%) 替換為 0

如何在所有目录中创建一个空文件(0 字节大小)?

在子目录中,如何删除大小为0字节的所有文件?

如何在C#中从字符串之间删除带有空格的前导0

如何从外部.txt文件的每一行中获取所有单词

如何从目录中所有.txt文件中获取行的一部分?

密谋:如何从刻度标签中删除前导0

如何在wget请求中丢失前导0以显示?

如何在toString()方法中返回2个前导0?

如何从我的列中删除前导“ 0”?蟒蛇

如何从txt文件中获取内容到数组

如何获取数组 0 值

如果没有记录,如何从max函数中获取0

如何使用 Python 读取文件夹中的所有 .txt 文件并将其内容附加到一个 .txt 文件中?

在保持内容居中并用0填充新空间的同时,如何更改现有数组的形状?

如何在 JSON 中获取 0 的 API

如何从数组中删除 0?

Haskell如何删除列表中的所有0,直到元素之一== 0?

在 VBA 中打开 CSV 文件时如何保持前导零