Опять столкнулся с проблемой (надеюсь, больше вопросов не задаю). Мне нужно разделить данные из столбца F (строки будут добавляться каждый день) на столбцы G,H,I. Данные в столбце F имеют формат «XXX YY ZZZ_ZZZZrandomdatahere». Мне нужно разделить XXX на столбец G, XX на столбец H, ZZZ_ZZZZ на столбец I и позволить программе игнорировать остальное (все, что после ZZZ_ZZZZ) или, если это невозможно игнорировать, позволить ей бросить его в столбец J.
У меня есть команда, которая работает для этого (я изменил формат на «XXX-YY-ZZZ_ZZZZrandomdatahere», где я использую «-», чтобы определить, по чему команда должна его разделить. Проблема в том, что мне нужно убедиться, что разделение выполняется в той конкретной строке, которая отмечена. Теперь, если я отмечу определенные строки, они будут перезаписаны из строки G4 (первая строка, с которой мне нужно начать), мне нужно переместить целевое местоположение в эту конкретную отмеченную строку (строки). . Я пытался найти решение, но совершенно потерялся в VBA.
Private Sub Generate_Click()
Dim destRng As Range
If Selection.Columns.Count = 1 Then
Set destRng = Range("G4")
Selection.TextToColumns , Destination:=destRng, _
DataType:=xlDelimited, Other:=True, OtherChar: = "-", Other:=False, OtherChar: = "_"
Else
MsgBox "Blah blah blah"
End If
End Sub
РЕДАКТИРОВАТЬ :
Под конкретной строкой я подразумеваю, что после маркировки строк, например F15:F25, столбцы G,H,I также будут заполнены в строках G15:G25, H15:H25 и т. д. Если кто-то в строке F14 забыл отметить строку и разделить ее столбец F, чтобы строка F15 не вводилась в ячейки G14, H14 и I14. Я также отправляю фотографию того, что я имею в виду.
@FaneDuru Прошу прощения, я изменю свой вопрос и добавлю изображение, чтобы объяснить, что я имею в виду. Спасибо за комментарий.
Этот мод. используйте строки выбора, чтобы определить пункт назначения.
Private Sub Generate_Click()
Dim destRng As Range
If Selection.Columns.Count = 1 Then
'Set destRng = Range("G4") instead this
Selection.TextToColumns , Destination:=Range("G" & Selection.Row), _ 'mod
DataType:=xlDelimited, Other:=True, OtherChar: = "-", Other:=False, OtherChar: = "_"
Else
MsgBox "Blah blah blah"
End If
End Sub
Это именно та модификация, которая мне была нужна, большое спасибо.
Пожалуйста, объясните, что означает «конкретная отмеченная строка (строки)». Если сложно, попробуйте отредактировать свой вопрос и покажите изображение диапазона, который вы пытаетесь обработать... Думаю, объяснение того, что вы считаете маркером, также поможет.