powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Замена определенного элемента в строке кода
7 сообщений из 7, страница 1 из 1
Замена определенного элемента в строке кода
    #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
Замена определенного элемента в строке кода
    #40090064
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
См. MID Statement.
...
Рейтинг: 0 / 0
Замена определенного элемента в строке кода
    #40090506
maxim863
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
Mid (stringvar, start, [length]) = string


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


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