VBA单元格。替换更改整个电子表格
设置: 使用ACCESS 2010 VBA在Excel中创建图纸。以下问题已在处理导出的excel文件 问题: 我有下面的代码(也尝试了各种代码),但遗憾的是,它在整个电子表格中的每一个“-”都在更改,而只在提到的单元格中。我不知道为什么会这样VBA单元格。替换更改整个电子表格,vba,excel,Vba,Excel,设置: 使用ACCESS 2010 VBA在Excel中创建图纸。以下问题已在处理导出的excel文件 问题: 我有下面的代码(也尝试了各种代码),但遗憾的是,它在整个电子表格中的每一个“-”都在更改,而只在提到的单元格中。我不知道为什么会这样 For i = 2 To k If Cells(i, 15).Value Like "*" & "-" & "*" & ":" & "*" Then Cells(i, 15).Replace What:="-", Repl
For i = 2 To k
If Cells(i, 15).Value Like "*" & "-" & "*" & ":" & "*" Then
Cells(i, 15).Replace What:="-", Replacement:="_" - changes all
Cells(i, 15).Replace What:=":", Replacement:="." - changes all
End If
Next i
非常感谢您的帮助。提前谢谢 不确定为什么这不起作用(我无法复制它)。你能看看这是否有效吗
For i = 2 To k
If Cells(i, 15).Value Like "*" & "-" & "*" & ":" & "*" Then
Cells(i, 15) = Replace(Cells(i, 15), "-", "_")
Cells(i, 15) = Replace(Cells(i, 15), ":", ".")
End If
Next i
不知道为什么这不起作用(我不能复制它)。你能看看这是否有效吗
For i = 2 To k
If Cells(i, 15).Value Like "*" & "-" & "*" & ":" & "*" Then
Cells(i, 15) = Replace(Cells(i, 15), "-", "_")
Cells(i, 15) = Replace(Cells(i, 15), ":", ".")
End If
Next i
Op的代码似乎是
Replace
函数和Range.Replace
的混合。方法
返回:一个字符串,其中一个指定的子字符串已被另一个指定次数的子字符串替换
语法:Replace(表达式、查找、替换、[start]、[count]、[compare])
返回:一个布尔值,指示指定范围内单元格中的字符。使用此方法不会更改选择或活动单元格
语法:范围.替换(什么,替换,[LookAt],[SearchOrder],[MatchCase],[MatchByte],[SearchFormat],[ReplaceFormat])
虽然需要通过Cell
应用Replace
功能Cell
,但是Range.Replace
方法可以应用于整个范围。但是,当Range.Replace
方法应用于单个单元格时,将在整个工作表上执行替换
。。。这就是这些线路所做的:
Cells(i, 15).Replace What:="-", Replacement:="_"
Cells(i, 15).Replace What:=":", Replacement:="."
Range.Replace方法不需要逐个单元格应用,也不需要首先验证要替换的字符串是否存在(即What
),而是直接将其应用于整个范围。请尝试以下代码:
With Range(Cells(2, 15), Cells(k, 15)) 'change as required
.Replace What:="-", Replacement:="_", LookAt:=xlPart, _
SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:=":", Replacement:=".", LookAt:=xlPart
End With
Op的代码似乎是
Replace
函数和Range.Replace
的混合。方法
返回:一个字符串,其中一个指定的子字符串已被另一个指定次数的子字符串替换
语法:Replace(表达式、查找、替换、[start]、[count]、[compare])
返回:一个布尔值,指示指定范围内单元格中的字符。使用此方法不会更改选择或活动单元格
语法:范围.替换(什么,替换,[LookAt],[SearchOrder],[MatchCase],[MatchByte],[SearchFormat],[ReplaceFormat])
虽然需要通过Cell
应用Replace
功能Cell
,但是Range.Replace
方法可以应用于整个范围。但是,当Range.Replace
方法应用于单个单元格时,将在整个工作表上执行替换
。。。这就是这些线路所做的:
Cells(i, 15).Replace What:="-", Replacement:="_"
Cells(i, 15).Replace What:=":", Replacement:="."
Range.Replace方法不需要逐个单元格应用,也不需要首先验证要替换的字符串是否存在(即What
),而是直接将其应用于整个范围。请尝试以下代码:
With Range(Cells(2, 15), Cells(k, 15)) 'change as required
.Replace What:="-", Replacement:="_", LookAt:=xlPart, _
SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:=":", Replacement:=".", LookAt:=xlPart
End With
代码看起来是正确的。我在小测试数据上进行了测试,它似乎运行良好。代码看起来是正确的。我在小测试数据上进行了测试,它似乎工作得很好。
“*”&“-”&“*”&”:“&“*”
与*-*:*
?@JohnyL-确实如此。实际上,我可能会删除答案,因为OP的代码没有明显的错误。出于某种原因,替换单元格(I,15)。替换内容:=“-”,替换:=“\code>为单元格(I,15)=替换(单元格(I,15),“-”,“\code>解决了问题。谢谢!为什么被否决?代码语法是正确的,OP已经确认它对他有效。向上投票…很可能是向下投票,因为它无法解释正在发生的事情,OP也不了解它的功能或工作原理。。。与下面更好的不被接受的答案不同,“*”&“-”&“*”&”:“&“*”
与*-*:*
?@JohnyL-确实如此。实际上,我可能会删除答案,因为OP的代码没有明显的错误。出于某种原因,替换单元格(I,15)。替换内容:=“-”,替换:=“\code>为单元格(I,15)=替换(单元格(I,15),“-”,“\code>解决了问题。谢谢!为什么被否决?代码语法是正确的,OP已经确认它对他有效。向上投票…很可能是向下投票,因为它无法解释正在发生的事情,OP也不了解它的功能或工作原理。。。与下面更好的不被接受的答案不同