![](/img/trans.png)
[英]Remove bottom borders from cell range in Excel 2016 VBA - not working?
[英]VBA remove " from cell content in a range
我是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字符。
附錄:
關於問題的第二部分,最好使用快速文本到列►固定寬度命令將看起來像數字的文本更改為實際數字。 每列必須單獨運行,但這可以在.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
有一個問題是列開始時的數字格式。 如果它們是Text (例如'.NumberFormat =“@”`那么刪除引號不會將它們轉換為真實數字。我已經添加了對通用數字格式的恢復以適應這一點。如果你有現有的數字格式,您希望保留,有更精確的方法可以恢復某些單元格的數字格式。
Cell.Value2 =替換(Cell.Value2,Chr(34),“”)
總有一種解決方法,這個是通過字符代碼引用的。
你應該將Cell作為范圍調暗。 使用VBA語法元素命名變量也不是一個好主意。 請改用MyTable和MyCell。
並設置范圍更好用
設置MyTable = [A1]
對於MyTable.CurrentRegion中的每個MyCell
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.