gpt4 book ai didi

excel - 打开 CSV 文件而不将文本转换为公式

转载 作者:行者123 更新时间:2023-12-04 20:26:36 24 4
gpt4 key购买 nike

我有一个 CSV 文件,其中大部分填充了文本,当我用 Excel 打开它时,一些单元格被解释为公式并具有值 #NAME?在他们中。

这是因为这些单元格以“-”开头,后跟一个字母。这些单元格实际上包含多行的枚举。

要重现此问题,您只需在单元格中键入以下内容;将其保存为 CSV 文件;关闭它;并重新打开它。

'-a



撇号在这里很重要,因为它告诉 Excel 将单元格的内容视为字符串而不是公式。但是,当重新打开 CSV 时,这个撇号将消失并被等号替换,因此我们得到 #NAME?错误。

所以,我想实现一个宏,它会在 CSV 文件打开后立即循环遍历 CSV 文件中的单元格,以通过删除 Excel 添加的等号来解决该问题:
Sub PostCsvOpenConvertToString()
'PURPOSE: Convert all #NAME (caused by formula automatic conversion back) to a string.
'INSTRUCTION: Run right after opening the CSV file.

Dim CsvFile As Workbook
Set CsvFile = ActiveWorkbook

Dim ws As Worksheet
Set ws = CsvFile.Sheets(1)

Dim CellsValue() As Variant
CellsValue = ws.UsedRange.Value2

Dim i As Long, j As Long
For i = 1 To UBound(CellsValue, 1)
For j = 1 To UBound(CellsValue, 2)

If CVErr(CellsValue(i, j)) = CVErr(xlErrName) Then
Dim CellFormula As String
CellFormula = ws.UsedRange.Cells(i, j).Formula
If Left$(CellFormula, 1) = "=" Then
ws.UsedRange.Cells(i, j).Formula = Right$(CellFormula, Len(CellFormula) - 1)
End If
End If

Next j
Next i

End Sub

这种方法有效,但我想知道是否有更直接的方法。有没有办法保存文件,以便 Excel 在重新打开时不会将其转换为公式?

或者,有没有办法打开 CSV,以便 Excel 不会将单元格转换为公式?

我知道我可以去 数据 > 获取和转换数据 > 从文本/CSV .唯一的问题是它创建了一个表(我不想要),而且我不习惯在 VBA 中编写这些查询。所以,如果我可以避免它,我会更喜欢,但如果这是唯一的解决方案,我会考虑它。

注意:很高兴知道这种行为对于字母表中的所有其他字母都是相同的,除了 C 和 R,这可能与 R1C1 样式的引用有关。

最佳答案

再次感谢 Ron Rosenfeld在评论中提供这个答案。我只是在这里复制一些细节,所以我可以将此问题标记为已回答。

为了避免在从 Data > Get Data 导入 CSV 时插入表格部分,可以使用 Text Import Wizard可以添加到可用选项中。
enter image description here
然后,确保在第 3 步中指明数据为 Text:
enter image description here

关于excel - 打开 CSV 文件而不将文本转换为公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59023715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com