Изменение строки в ячейках - PullRequest
1 голос
/ 30 марта 2012

У меня есть ячейки с такими данными:

ABCD123XYZ  
MPOP345MLU
.  
.  
.  
.  

Я хочу удалить 3-й и 4-й символ из всех этих ячеек, что дает

AB123XYZ  
MP345MLU

Как мне сделать это в VBA?

Я понятия не имею об этом языке, и если кто-то может направить меня в правильном направлении, было бы здорово:)

Я понимаю, что должен:

  1. Объявить 2 строковые переменные st1 и st2
  2. Сохранить данные из ячейки A1 в переменную st1
  3. Скопировать все символы кроме 2-го и 3-го в str2
  4. Вывести Str2 вB1
  5. Переход к A2

Ответы [ 4 ]

3 голосов
/ 30 марта 2012

Другой способ с использованием формулы Replace (), где A1 - это ячейка с текстом. Вы можете просто скопировать формулу вниз.

=REPLACE(REPLACE(A1,3,1,""),3,1,"")

VBA CODE

Sub Sample()
    Dim LastRow As Long

    With Sheets("Sheet1")
        LastRow = .Range("A" & Rows.Count).End(xlUp).Row

        .Range("B1").FormulaR1C1 = "=REPLACE(REPLACE(RC[-1],3,1,""""),3,1,"""")"
        .Range("B1").AutoFill Destination:=Range("B1:B" & LastRow), Type:=xlFillDefault
    End With
End Sub
1 голос
/ 30 марта 2012

Вам не нужен VBA для этого.Просто используйте формулу:

=LEFT(A1,2) & MID(A1,5,9999)
1 голос
/ 30 марта 2012

@ ДугГланси уже получил ответ,
но если вы действительно хотите использовать VBA:

Sub substr_example()
  ThisWorkbook.Sheets(1).Range("B1:B100").FormulaR1C1 = _
      "=LEFT(RC[-1],2)&MID(RC[-1],5,LEN(RC[-1])-4)"
End Sub
1 голос
/ 30 марта 2012

использовать функцию "mid"

Dim str1 As String
Dim str2 As String

str1 = Cells(1, 1) '"ABCD123XYZ"
str2 = Cells(2, 1) '"MPOP345MLU"

Cells(1, 2) = Mid(str1, 1, 2) & Mid(str1, 5) 'yield AB123XYZ
Cells(2, 2) = Mid(str2, 1, 2) & Mid(str2, 5) 'yield MP345MLU
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...