gpt4 book ai didi

excel - VBA从范围内的单元格内容中删除“

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

我是 vba 编码(和一般编码)的新手,但我已经开始做一个小宏,将 csv 文件的值传输到 excel 文件中。

我的下一步是删除每个单元格中的引号。我已经在我的 sub 中尝试了这些代码行:

Dim Table As Range
Dim Cell As Variant

Set Table = Range("A1:currentregion")

For Each Cell In Table
cell.value2 = Replace(cell.value2,""","") *I get a syntax error here*
Next Cell

我知道这是非常基本的,但我无法在网上或使用宏记录器找到解决方案。如果有人能告诉我我做错了什么以及我可以使用什么代码将包含一串数字的单元格中的值更改为数值?

谢谢!

最佳答案

您不需要遍历每个单元格。 Range("A1").CurrentRegion可以作为一个整体进行操作。

With Range("A1").CurrentRegion
.Replace What:="""", Replacement:=vbNullString, LookAt:=xlPart
End With

请注意,要查找单引号(例如“),您需要连续 4 个引号。另一种选择是 Chr(34),因为引号符号是第 34 个 ASCII 字符。

附录:

关于问题的第二部分,将看起来像数字的文本更改为实际数字最好使用快速的 Text to Columns ► Fixed Width 命令。每列都必须单独运行,但这可以在 .CurrentRegion 中完成。 .
Dim c As Long
With Range("A1").CurrentRegion
.Replace What:="""", Replacement:=vbNullString, LookAt:=xlPart
For c = 1 To .Columns.Count
.Columns(c).NumberFormat = "General"
.Columns(c).TextToColumns Destination:=.Columns(c), _
DataType:=xlFixedWidth, FieldInfo:=Array(0, 1)
Next c
End With

有一个问题是列的开头是什么数字格式。如果它们是文本(例如 '.NumberFormat = "@"`,则删除引号不会将它们转换为真实数字。我添加了对通用数字格式的恢复以适应这一点。如果您有现有的数字格式您希望保留,有更精确的方法可以恢复某些单元格的数字格式。

关于excel - VBA从范围内的单元格内容中删除“,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28920305/

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