VBA excel替换

VBA excel替换,vba,excel,replace,Vba,Excel,Replace,嗨,我是VBA的初学者 我需要做一些事情,但我不知道怎么做 1) 首先,我必须将逗号(,)转换为点(.) 2) 在第2列中,我想在点之前编号 3) 如果单元格中有一个字母,我想把它改为+1 例如,单元格(i,13)0.b1=0+1=1或3.c=3+1=4 下面我上传了示例文件和代码(不起作用) 错误:声明无效的外部类型块 子变更() 作为整数的Dim i 暗点如线 i=2 而单元格(i,1)” 点=单元(i,1) 点=替换(点“,”,“) 如果InStr(单元格(i,1),“),则 单元格(

嗨,我是VBA的初学者 我需要做一些事情,但我不知道怎么做

1) 首先,我必须将逗号(,)转换为点(.)

2) 在第2列中,我想在点之前编号

3) 如果单元格中有一个字母,我想把它改为+1

例如,单元格(i,13)0.b1=0+1=1或3.c=3+1=4

下面我上传了示例文件和代码(不起作用)
错误:声明无效的外部类型块

子变更()
作为整数的Dim i
暗点如线
i=2
而单元格(i,1)”
点=单元(i,1)
点=替换(点“,”,“)
如果InStr(单元格(i,1),“),则
单元格(i,2)=左(单元格(i,1,2)”我只想要点前面的数字
如果结束
如果IsNumeric(单元格(i,1))=False,则
单元(i,2)=单元(i,1)+1
如果结束
“如果单元格中有一个字母,我想把它改为+1
例如,单元格(i,13)0.b1=0+1=1或3.c=3+1=4
i=i+1
温德
端接头
类似这样的东西

Sub change()    
    Dim i As Integer, s As String, a() As String, cell As Range

    Set cell = [A2]
    While cell > "" 
        s = Replace(cell, ",", ".")
        a = Split(s, ".")
        i = a(0)
        If UBound(a) > 0 Then
            If a(1) Like "[a-zA-Z]*" Then i = i + 1
        End If
        cell(, 2) = i      ' the cell on its right
        Set cell = cell(2) ' the cell below it
    Wend    
End Sub
在不使用VBA的情况下,可以通过将列A复制到列B,然后将数据>文本复制到列>检查逗号和其他:
,然后可以在
D2
中使用此公式来解决此问题:

= B2 + Not( IsNumber( C2 ) )

你的要求不太清楚,你能在之前添加一份Excel表格样本,然后手动完成结果(仅1-2行)并写入数据吗?是的,但这是我来这里的第一天,我正在研究如何上传Excel表格,你能帮我吗?另外,不要只是“不起作用”,而是提供更多关于什么不起作用,你得到了什么的详细信息,以及你期望得到的。您不能在此处上载文件,只需图像您会收到您提到的特定编译器错误,因为您需要将
Dim
放在
i作为整数和
dot作为字符串的前面。您尚未得到的编译器错误是,
IsNumeric
是一个函数。如果是数字(单元格(i,1)),则应为
,然后为
。解决这个问题,然后在剩下的地方开一条缝。如果UBound(a)>0,一切都好吗?因为我已经修复了语法错误
如果UBound(a)>0,那么
我就有点离题了,因为我刚刚从你的回答中学到了一些东西,我想确认:
[A2]
范围(“A2”)
相同,
单元格(2)
单元格.Offset(1,0)
相同。是这样吗?因为那是amazing@VictorMoraes更像和
cell.Cells(2,1)
一样,这太神奇了。我将研究一下。非常感谢
= B2 + Not( IsNumber( C2 ) )