gpt4 book ai didi

vba - Excel复制空白而不是零

转载 作者:行者123 更新时间:2023-12-04 21:03:00 24 4
gpt4 key购买 nike

我正在工作一个工作表,它将数据保存到一个单独的工作表中,作为一种先前条目的数据库。一切都很好,但突然间它开始在数据库电子表格中输入空白而不是零。它以前没有这样做,我不确定是什么触发了行为变化。我关注的代码是这样的:

Workbooks(DatabaseName).Worksheets(WorksheetName).Cells(n.Row, i) = Workbooks(WorkBookName).Worksheets(WorksheetName).Cells(k, l).Value

使用即时查看器,我可以看到 .Cells(k, l).Value 返回“空白”值而不是零,即使 Cell (k,l) 包含零。为了解决这个问题,我尝试设置整数变量:
CellValue = Workbooks(WorkBookName).Worksheets(WorksheetName).Cells(k, l).Value
DBValue = Workbooks(DatabaseName).Worksheets(WorksheetName).Cells(n.Row, i).Value
If CellValue <> DBValue Then
Workbooks(DatabaseName).Worksheets(WorksheetName).Cells(n.Row, i) = CellValue
End If

这将返回类型不匹配,因为 .Cells(k, l).Value 仍然返回“空白”而不是“0”。

令我困惑的是,这已经被几个人使用了很长一段时间(实际上是几年),直到本周它才将空白换成零。我可以改变什么来完成这项工作?

编辑:在尝试强制整数类型的方法后,我重新检查了我得到的类型不匹配,在 1200 行整数之后,有三个单元格包含导致类型不匹配的字符串,而不是我之前认为的空白单元格。我将代码更改为仅使用整数方法,直到它到达这些字符串,并且我不再收到类型不匹配错误。令人沮丧的是,它仍然将零记录为空白。

编辑 2:问题解决了!当 excel 评估语句时:
If Cells(k, l).Value <> Cells(n.Row, i).Value Then

当 (k, l) 为“0”且 (n.Row, i) 为空白时,它返回两者相等并跳过将零写入到 (n.Row, i) 的“Then”语句.
我通过更改为解决了它
If Cells(k, l).Value <> Cells(n.Row, i).Value Then
....
ElseIf Cells(k,l).Value = 0 Then
....

最佳答案

这些单元格是数字格式还是字符串格式?看这个:

www.techrepublic.com/blog/microsoft-office/three-ways-to-hide-zero-values-in-an-excel-sheet/

关于vba - Excel复制空白而不是零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32406407/

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