Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Замена определенного элемента в строке кода / 7 сообщений из 7, страница 1 из 1
11.08.2021, 11:36
    #40090027
maxim863
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена определенного элемента в строке кода
С помощью VbaEditor могу заменить определенную строку кода другой строкой.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
Sub кс()
Dim book1 As Workbook
Dim book2 As Workbook

Dim VBAEditor As VBIDE.VBE
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule
Dim ReplaceWhat As String
Dim t As Long, i As Long, m As Long, n As Long

Set book2 = Workbooks.Open(".......")
    For t = 2 To 369
        i = book2.Worksheets(1).Cells(t, 1).Value
        m = book2.Worksheets(1).Cells(t, 2).Value
        n = book2.Worksheets(1).Cells(t, 3).Value
        
        If n > 110 Then
        GoTo Label1
        End If
        
        Set VBAEditor = Application.VBE
        Set book1 = Workbooks.Open("......")
        Set VBProj = book1.VBProject
        Set VBComp = VBProj.VBComponents("Module1")
        Set CodeMod = VBComp.CodeModule
        
        ReplaceWhat = "If (C.Offset(0, -3).Value = ЛОЖЬ Or C.Offset(0, 1).Value = 0 Or C.Offset(0, -7).Value <> ЛОЖЬ Or C.Offset(0, -8).Value <> ЛОЖЬ) And k = -2 Then"
        CodeMod.ReplaceLine m, ReplaceWhat
            
        Application.Calculate
        book1.Save
        book1.Close
        
        Set VBAEditor = Nothing
        Set VBProj = Nothing
        Set VBComp = Nothing
        Set CodeMod = Nothing
Label1:
    Next t
book2.Save
book2.Close
End Sub



Можно ли найти и заменить определенный элемент в строке ?
Например:
Код: vbnet
1.
 C.Offset(0, 1).Value = 0

на
Код: vbnet
1.
 C.Offset(0, 28).Value = 5
...
Рейтинг: 0 / 0
11.08.2021, 14:03
    #40090064
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена определенного элемента в строке кода
См. MID Statement.
...
Рейтинг: 0 / 0
13.08.2021, 11:32
    #40090506
maxim863
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена определенного элемента в строке кода
Код: vbnet
1.
Mid (stringvar, start, [length]) = string


Туплю. Как мне задать stringvar, если я знаю номер строки и столбца элемента в коде?
...
Рейтинг: 0 / 0
13.08.2021, 12:59
    #40090539
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена определенного элемента в строке кода
А код-то где? Mid работает с текстовой переменной. Если код в модуле текущей компилированной программы, то это уже псевдокод, в котором хрен чё поменять.
...
Рейтинг: 0 / 0
16.08.2021, 10:14
    #40090949
ldfanate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена определенного элемента в строке кода
Так понимаю, решаете классическую задачу - рассылка в подразделения отчёта для заполнения с разной встроенной логикой проверок?
...
Рейтинг: 0 / 0
23.08.2021, 10:05
    #40092598
maxim863
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена определенного элемента в строке кода
ldfanate,
Ни слова не понял
...
Рейтинг: 0 / 0
23.08.2021, 10:09
    #40092599
maxim863
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена определенного элемента в строке кода
Разобрался
Нужно с помощью Line преобразовать строку кода в String
Затем в ней заменить нужный элемент
И только потом использовать ReplaceLine
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Замена определенного элемента в строке кода / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]