Автоматизація руху клітинок переважно використовує умови if / when style


0

enter image description here

Я хочу повністю автоматизувати процес очищення експортованих даних. Я хочу:

  • Перемістіть дані в рядках переповнення в їх перспективний стовпець. Я спробував наступний код у VB. (Це намагається ідентифікувати символ @ у повідомленнях електронної пошти і, відповідно, перенести всі адреси електронної пошти на два місця праворуч).

Sub qwerty()
    Dim D As Range, r As Range
    Set D = Intersect(ActiveSheet.UsedRange, Range("D:D"))

For Each r In D
    If Left(r.Text, 2) = "@" Then
        r.Copy r.Offset(0, 1)
        r.Clear
    End If
Next r End Sub

  • Після того, як дані знаходяться у правильному стовпці, мені потрібно автоматизувати рух у правильному рядку. Я з легкістю можу змінити їх, але якщо один контакт не має адреси електронної пошти (як приклад), то електронні листи будуть знаходитися в неправильних рядах, коли вони зміщуються вгору.

Відповіді:


0

Використовуйте цей код:

Sub qwerty()
    Dim y As Integer, x As Integer

    y = 2
    Do Until Cells(y, 4) = ""
        If Cells(y, 3) = "" Then
            Select Case Left(Cells(y, 4))
                Case "[E": x = 6
                Case "[H": x = 7
                Case "[M": x = 8
                Case "[A": x = 9
                Else: x = 10
            End Select
            Cells(y - 1, x) = Cells(y, 4)
            Rows(y).EntireRow.Delete
        Else
            y = y + 1
        End If
    Loop
End Sub

Деякі зауваження щодо оригінальної VBA:

  • "Це намагається ідентифікувати символ @ у повідомленнях електронної пошти ...": left(r.Text,2) вибирає перші два символи рядка, він ніколи не буде дорівнює одному символу довгий рядок ("@")! (мій код визначає розташування на основі першого символу після [)
  • "і відповідно перемістити всю адресу електронної пошти на два місця вправо" - ваш код OFFSET(0,1), що є лише одним стовпцем праворуч, завжди перевіряйте відповідність коду.
  • "Після того, як дані знаходяться у правильному стовпці, мені потрібно автоматизувати рух у правильний рядок" - мій код робить обидва кроки на одному кроці, крім коротшого коду, це ще простіше.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.