【发布时间】:2021-10-06 22:01:15
【问题描述】:
我认为我有一个好的开始,但我很难将它带到终点线。有人可以帮帮我吗?
我的电子表格中有一个名称列 (G)。我想从每个单元格中提取唯一的姓氏并将其分配给一个名为 name_array 的数组。
我知道我的 If 函数正在工作,因为如果我将每个 name_cell 设置为 LastName 变量,它只会替换列的每个单元格中的姓氏,但我不知道如何将其分配给数组。
到目前为止,这是我的代码。有人可以帮我指出我所缺少的吗?
Sub create_namear()
Dim name_array() As Variant
Dim name_range As Range
Dim name_cell As Range
Dim n As Long
Set name_range = ActiveSheet.Range("G2:G" & Range("G" & Rows.Count).End(xlUp).Row)
ReDim name_array(name_range.Cells.Count)
For Each name_cell In name_range.Cells
Dim Lastname As String
If InStr(name_cell, " ") > 0 Then
Lastname = Split(name_cell, " ")(1)
End If
name_array(n) = lastname.value
n = n + 1
Next name_cell
Debug.Print name_array(1)
End Sub
【问题讨论】:
-
name_array(n) = lastname字符串没有Value属性。 -
我可以做一些类似 Cstr(last name) 的事情吗?我只是不确定如何获取数组中的姓氏。有什么替代建议吗?
-
在下面查看我的答案
-
您是否考虑过使用
Text To Columns或Flash Fill? -
@Possdawgers 请允许我说一句:您得到了五个用户的答案,他们试图通过投入一些时间来提供帮助 - 这很好用,也有助于其他读者标记其中的 一个接受(接受由答案旁边的彩色复选标记表示);也可以随意点赞任何个有用的帖子:C.f. "Someone answers"
标签: arrays excel vba if-statement spreadsheet