试图在另一列中填写州名

我目前有一个电子表格,其中包含A列中所有城市的名称,如下所示:

Dallas, TX New York, NY Miami, FL 

我想要做的是从第一列中提取状态并将它们放在B列中。

我目前的尝试是这样的:

 Sub StateFill() Dim x As Long For x = 1 To 65536 If InStr(1, Sheet1.Range("$A$" & x), ", AL") Then Sheet1.Range("$B$" & x) = Sheet1.Range("$B$" & x) & "AL" End If Next For x = 1 To 65536 If InStr(1, Sheet1_metro.Range("$A$" & x), ", AK") Then Sheet1.Range("$B$" & x) = Sheet1.Range("$B$" & x) & "AK" End If Next ... For x = 1 To 65536 If InStr(1, Sheet1.Range("$A$" & x), ", WY") Then Sheet1.Range("$B$" & x) = Sheet1.Range("$B$" & x) & "WY" End If Next End Sub 

我得到错误“运行时错误424:对象需要”,不知道发生了什么问题。 任何帮助,将不胜感激!

这个:

Sheet1_metro.Range

没有在子中定义。

这是另一种方法:

 Sub StateFill() Dim x As Long, N As Long With Sheet1 N = .Cells(Rows.Count, 1).End(xlUp).Row For x = 1 To N If Right(.Range("$A$" & x), 4) Like ", [AZ][AZ]" Then .Range("$B$" & x) = .Range("$B$" & x) & Right(.Range("$A$" & x), 2) End If Next End With End Sub 

我会去如下:

 Sub main() With Sheet1 With .Range("A1", .Cells(.Rows.Count, 1).End(xlUp)) .Offset(,1).Value = .Value .Offset(,1).Replace What:="*, ", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False End With End With End Sub