这是一个奇怪的具体问题。假设我有一个产生值为0的单元格。我正在将其写入文本文件。
当我写它而不是0时,我希望有四个空格(它实际上是一个null的可视占位符)。
这一行的问题:
cellValue = Replace(cellValue, 0, " ")
这往往会用四个空格替换全零。有没有人知道如何解决这个问题?我将不胜感激任何帮助。
示例输入:
0 | 100 | 48
示例输出:
____10048 (Underscores are spaces).
到目前为止我所拥有的:
Dim myFile As String, rng As Range, cellValue As Variant, I As Integer, j As Integer
myFile = Application.DefaultFilePath & "\test_data_output.txt"
Set rng = Selection
Open myFile For Output As #1
For I = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
cellValue = Replace(cellValue, 0, " ")
cellValue = cellValue + CStr(rng.Cells(I, j).Value)
If j = rng.Columns.Count Then
Print #1, cellValue
End If
Next j
cellValue = ""
Next I
Close #1
--------------------------------- UPDATE ------------- -------------------------
所以我们决定做一个excel表,如果isBLANK条件显示4个空格,如果它是假的。那应该适用于现在。谢谢你的帮助。它基本上是一组空白的细胞,被带到一张新的床单上。因此,由于某种原因,它总是显示0表示其空白。我们决定,否则最好。
Excel代码:
=IF(ISBLANK('OurSheetName'!I7)," ",'OurSheetName'!I8)
答案 0 :(得分:2)
您的代码有几个问题: -
yourdict = dict()
with open(file) as f:
filedata = f.read().splitlines()
for line in filedata:
linedata = line.split()
if linedata[0] not in yourdict:
yourdict[linedata[0]] = []
yourdict[linedata[0]].append(int(linedata[3]))
yourdict[linedata[0]].append(int(linedata[4]))
for key in yourdict:
yourdict[key] = [min(yourdict[key]), max(yourdict[key])]
定义为cellValue
,原因并非明显。最好使用最能代表数据的数据类型声明变量。您可以简单地将其声明为Variant
,除非您有充分的理由将其保留为昂贵的String
。Variant
分配值的位置。这是完整的代码还是您编辑过来发布?如果代码在没有正确评论的情况下被发布,就很难对其进行评估,以解释删除的内容。您可以在编写之前测试该值: -
cellValue
答案 1 :(得分:1)
在进行更换之前,只需检查单元格值是否为0。
For I = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
If cellValue = 0 Then
cellValue = Replace(cellValue, 0, " ")
End If
If j = rng.Columns.Count Then
Print #1, cellValue
End If
Next j
cellValue = ""
Next I