Вот если Вы перечислите адреса в A1 через запятую, т.е. не "C9C10D11", а "C9,C10,D11", то тогда вот такая совсем простенькая процедурка будет делать желаемое: [vba]
Код
Sub clearAddrsFromA1plus3colsToRight() Dim wks As Worksheet Set wks = ThisWorkbook.Worksheets("Лист1") With wks.Range(wks.Range("A1")) .ClearContents .Offset(0, 3).ClearContents End With End Sub
[/vba]Иначе предстоит мучительная работа по впихиванию какого-то разделителя в эту строку в A1. Игра не стоит таких свеч и лучше сразу разделиться запятой.
Вот если Вы перечислите адреса в A1 через запятую, т.е. не "C9C10D11", а "C9,C10,D11", то тогда вот такая совсем простенькая процедурка будет делать желаемое: [vba]
Код
Sub clearAddrsFromA1plus3colsToRight() Dim wks As Worksheet Set wks = ThisWorkbook.Worksheets("Лист1") With wks.Range(wks.Range("A1")) .ClearContents .Offset(0, 3).ClearContents End With End Sub
[/vba]Иначе предстоит мучительная работа по впихиванию какого-то разделителя в эту строку в A1. Игра не стоит таких свеч и лучше сразу разделиться запятой.Gustav
Для этого примера можно применить такой код. [vba]
Код
Option Explicit
Sub DelV() Dim Ar(), St$, L%, n%, i% St = Trim(Cells(1, 1)) L = Len(St) n = 1 ReDim Ar(1 To L / 2) 'немного избыточно Ar(1) = Left(St, 1) For i = 2 To L If Mid(St, i - 1, 1) Like "[0-9]" And Mid(St, i, 1) Like "[A-Z]" Then n = n + 1 Ar(n) = Ar(n) & Mid(St, i, 1) Next For i = 1 To n Range(Ar(i)).ClearContents Range(Ar(i)).Offset(, 3).ClearContents Next End Sub
[/vba]
Для этого примера можно применить такой код. [vba]
Код
Option Explicit
Sub DelV() Dim Ar(), St$, L%, n%, i% St = Trim(Cells(1, 1)) L = Len(St) n = 1 ReDim Ar(1 To L / 2) 'немного избыточно Ar(1) = Left(St, 1) For i = 2 To L If Mid(St, i - 1, 1) Like "[0-9]" And Mid(St, i, 1) Like "[A-Z]" Then n = n + 1 Ar(n) = Ar(n) & Mid(St, i, 1) Next For i = 1 To n Range(Ar(i)).ClearContents Range(Ar(i)).Offset(, 3).ClearContents Next End Sub
Тогда уж покороче будет "мучительная работа по впихиванию разделителя" [vba]
Код
Sub clearAddrsFromA1plus3colsToRight_v2() Dim St$, i%, wks As Worksheet Set wks = ThisWorkbook.Worksheets("Лист1") St = Trim(wks.Cells(1, 1)) For i = Len(St) - 1 To 1 Step -1 If Mid(St, i, 1) Like "[0-9]" And Mid(St, i + 1, 1) Like "[A-Z]" Then St = Left(St, i) & "," & Mid(St, i + 1) Next i wks.Range(St).ClearContents wks.Range(St).Offset(0, 3).ClearContents End Sub
[/vba]
Тогда уж покороче будет "мучительная работа по впихиванию разделителя" [vba]
Код
Sub clearAddrsFromA1plus3colsToRight_v2() Dim St$, i%, wks As Worksheet Set wks = ThisWorkbook.Worksheets("Лист1") St = Trim(wks.Cells(1, 1)) For i = Len(St) - 1 To 1 Step -1 If Mid(St, i, 1) Like "[0-9]" And Mid(St, i + 1, 1) Like "[A-Z]" Then St = Left(St, i) & "," & Mid(St, i + 1) Next i wks.Range(St).ClearContents wks.Range(St).Offset(0, 3).ClearContents End Sub