excel - VBA将单元格值保存到新文件而不格式化
问题描述
我在 Excel 中有一个数据表,需要将其上传到将转换为网页的某个地方。此表的其中一列包含 HTML 代码。对于此列中的每个单元格,我需要从单元格的内容创建一个 html 文件,而不需要额外的格式。然后我需要用新文件名替换该单元格的内容。
目前我有以下内容:
Sub ExportRangetoFile()
'Update 20130913
Dim wb As Workbook
Dim saveFile As String
Dim WorkRng As Range
On Error Resume Next
Set WorkRng = Application.Selection
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set wb = Application.Workbooks.Add
For i = 1 To WorkRng.Rows.Count
WorkRng.Cells(RowIndex:=i, ColumnIndex:="A").Copy
wb.Worksheets(1).Paste
wb.SaveAs Filename:="E:\Test\" & i, CreateBackup:=False
Next
wb.Close
Application.CutCopyMode = False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
但是 wb.SaveAs 函数会根据输入的 Format 参数自动格式化,或者如果没有参数,它会格式化为当前版本的 excel。我只想将单元格的内容输出到一个没有格式的纯文本文件中;我怎样才能做到这一点?
解决方案
从单元格值创建文本文件
- 在使用代码之前,调整这两个常量。
编码
Option Explicit
Sub exportRangetoFile()
Const FolderPath As String = "F:\Test\2020\64976794\"
Const FileExtension As String = ".txt"
If TypeName(Selection) = "Range" Then
Dim rng As Range
Set rng = Selection
Dim Data As Variant
If rng.Rows.Count > 1 Then
Data = rng.Value
Else
ReDim Data(1 To 1, 1 To 1)
Data(1, 1) = rng.Value
End If
With CreateObject("Scripting.FileSystemObject")
Dim TextFile As Object
Dim i As Long
For i = 1 To UBound(Data, 1)
Set TextFile = .CreateTextFile(FolderPath & i _
& FileExtension, True)
TextFile.Write Data(i, 1)
TextFile.Close
Next i
End With
End If
End Sub
推荐阅读
- javascript - JS检测点击DIV内的iFrame
- angular - Kendo Angular Parse 月份数到月份名称
- python - 是否可以调用 __init__ 中的方法来设置属性?
- ios - 是否可以通过 iOS Swift 中的流连接在单个屏幕上同时播放 2 个 WebRTC 流
- java - 使用哪组命令从终端在 Visual Studio Code 中运行 Spring Boot 应用程序?
- javascript - 无法使用 express puppeteer 打开具有相同链接的多个选项卡
- android - 如何在不影响描边颜色的情况下从 ImageView 设置形状的填充颜色?
- java - ActiveMQ ObjectMessage 中的映射抛出 ClassCastException:无法分配 java.util.CollSer 的实例?
- sharepoint - 打开后在 mgt-person-card 中呈现其他详细信息
- android-studio - Android Studio 2020.3.1 (Canary) : Cmake 找不到与“Ninja”对应的构建程序