У меня сложный набор требований, и я пытаюсь разработать соответствующий фрагмент кода Excel VBA. Я новичок, поэтому любые советы по этому вопросу будут высоко оценены.
КОНТЕКСТ: на листе «Компания А» перечислены Департамент, шкала заработной платы и название должности (столбцы А- C). В листе «Компания B» перечислены все вышеперечисленные для их заданий, но также в столбцах D и E указано, соответствует ли каждое задание заданию компании A (столбец D), и если да, то для какого задания (столбец E), или нет ли совпадения, и тогда ячейка столбца E пуста.
AIM: я хочу сопоставить задания в компании B с работами в компании A и скопировать / вставить эти совпадающие задания компании B на лист "Company A" в виде ссылок в столбцах DF, но есть ПРОБЛЕМА!
ПРОБЛЕМА: В каждой компании есть несколько вакансий с одинаковым списком должностей Department-Pay Grade-Job, и эти цифры не совпадают в разных компаниях, например, в компании A есть 4 вакансии, а в компании B - только 3. Я хотел бы, чтобы мой код знал, чтобы копировать задания компании B только три раза и оставить четвертый ряд пустым (чтобы визуально указать три совпадающих задания и четвертое без совпадения). Чтобы добиться этого, у меня есть количество рабочих мест с одинаковым уровнем оплаты труда в каждом отделе в каждой компании, и я хочу использовать эти числа в качестве счетчиков для моего дела «Пока я» l oop.
Код, который я написал:
Private Sub CommandButton6_Click()
Dim counter As Integer
Dim myNum As Integer
a = Worksheets("COMPANYB").Range("A" & Rows.Count).End(xlUp).Row
Worksheets("JobNumbers").Range("D:D").Value = counter
Worksheets("JobNumbers").Range("C:C").Value = myNum
Do While counter < myNum
For i = 2 To a
If Worksheets("COMPANYB").Range("D" & i).Value = "Match" And _
Worksheets("COMAPNYB").Range("E" & i).Value = Worksheets("COMPANYA").Range("C" & i).Value Then
Worksheets("COMPANYB").Range("A" & i & ":C" & i).Copy
Worksheets("COMPANYA").Activate
b = Worksheets("COMPANYA").Range("D" & Rows.Count).End(xlUp).Offset(0, 3).Row
Worksheets("COMPANYA").Range("D" & b + 1).Select
ActiveSheet.Paste Link:=True
End If
Next i
counter = counter + 1
myNum = myNum - 1
Loop
End Sub
... но вместо того, чтобы работать, он просто помещает все 0 на моем листе "JobNumbers" в столбцы, откуда я хочу, чтобы он взял мой счетчик и myNum, чтобы установить тест для Do Пока l oop. Как вы можете видеть, я даже не дошёл до того, что «хочу оставить пустыми строки при копировании», что я хочу сделать, потому что я зациклен на этом. Я также начинаю задаваться вопросом, не жду ли я слишком многого от VBA ...
Я понимаю, что это много текста, и я прошу прощения - я был бы признателен за любые отзывы / помощь, спасибо !