Что мой код делает, так это то, что он автоматически получит список файлов Excel в папке и сравните Серийный номер в столбце главного списка, а затем, если значение будет одинаковым, оно скопирует серийный номер и вставьте его в столбец C. Если оба формата столбцов совпадают, тогда он будет работать отлично. Но если столбец отформатирован в тексте, сравнение кажется неудачным. Я искал достаточно времени, чтобы преобразовать эти ячейки в формат номера или общий формат, чтобы сравнение можно было успешно выполнить без заботы о формате.Excel VBA Как преобразовать текст формата ячейки в номер
Sub Compare()
Dim Dic As Object
Dim fso As Object
Dim fldStart As Object
Dim fl As Object
Dim Mask As String, i As Long
Dim Wbk As Worksheet, w1 As Worksheet
Set fso = CreateObject("scripting.FileSystemObject")
Set fld = fso.GetFolder("C:\Users\kelvinwong\Desktop\Survey Testing")
Set w1 = Workbooks("Book1.xlsm").Sheets("Sheet1")
Set Dic = CreateObject("Scripting.Dictionary")
Mask = "*.xlsx"
For Each fl In fld.Files
If fl.Name Like Mask Then
Set Wbk = Workbooks.Open(fld & "\" & fl.Name).Sheets("Sheet1")
i = Wbk.Cells.SpecialCells(xlCellTypeLastCell).Row
For Each oCell In Wbk.Range("A2:A" & i)
If Not Dic.exists(oCell.Value) Then
Dic.Add oCell.Value, oCell.Offset(, 0).Value
End If
Next oCell
End If
Next fl
i = w1.Cells.SpecialCells(xlCellTypeLastCell).Row
For Each oCell In w1.Range("A2:A" & i)
For Each key In Dic
If oCell.Value = key Then
oCell.Offset(, 2).Value = Dic(key)
End If
Next
Next
End Sub
Это даже близко к полезному ответу, если вы посмотрите на вопрос. Пожалуйста, удалите или измените свой ответ в соответствии с вопросом. Метод TextToColumns анализирует столбец ячеек, содержащий текст в нескольких столбцах. Это не имеет ничего общего с изменением формата ячейки. – dbmitch
@dbmitch. Я попробовал этот код, чтобы изменить число в текстовом формате на числовой формат (общий) в столбце, и он сработал. Я пробовал весь свой код, прежде чем публиковать его как ответы –
Спасибо Анастасии за решение. Он работает отлично. –