Копирование данных из ячейки одного листа на другой с условием - VBA
Формулировка задачи:
Копирование данных из ячейки одного листа на другой с условием
На листе 1 в ячейках B4: ...
ОТКАЗ - 306002
3 - 306000
1 - 306001
5 - 306001
...
Необходимо условие чтобы извлекалась первое слово из ячейки и приравнивалось к условию
ОТКАЗ=9, 1=5, 5=3
На листе 2 в ячейках G4 : ... должно получаться
9
5
3
Решение задачи: «Копирование данных из ячейки одного листа на другой с условием»
textual
Листинг программы
Option Explicit
Sub tt()
Dim a, i As Long, arr, t As String, col As New Collection
With CreateObject("scripting.dictionary"): .comparemode = 1
.Item("ОТКАЗ") = 9
.Item("1") = 5
.Item("5") = 3
a = Sheets(1).[b4].CurrentRegion.Value
For i = 1 To UBound(a)
arr = Split(a(i, 1), " - ")
If UBound(arr) = 1 Then
t = Trim(arr(0)): If .exists(t) Then col.Add .Item(t)
End If
Next
End With
ReDim a(1 To col.Count, 1 To 1)
For i = 1 To col.Count: a(i, 1) = col(i): Next
Sheets(2).[g4].Resize(col.Count, 1) = a
End Sub