0 / 0 / 0
Регистрация: 17.08.2021
Сообщений: 12
1

Не могу понять в ошибку в строчке кода

17.08.2021, 11:48. Показов 2638. Ответов 8

Author24 — интернет-сервис помощи студентам
Суть макроса такова что нужно из заранее созданного диапазона использовать значения, Проблема в том что цикл для первого диапазона (9 строка кода) он воспринимает только когда указываешь ячейки а во втором (23 строка) всё нормально.

ИСПРАВНЫЙ КОД
Visual Basic
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
Private Sub Worksheet_Change(ByVal Target As Range)
 
    If Target.Address = [F39].Address Then 'выделение ячейки
        Dim i As Integer, a As Double, b As Double, aa As Double, bb As Double
        If [F39] < Application.Min([X]) Or [F39] > Application.Max([X]) Then
            [F40] = ""
            MsgBox "Введенное значение вне области функции"
            Exit Sub
        End If
        For i = 28 To 36
            a = Cells(i, "B"): b = Cells(i + 1, "B")
            If [F39] <= a And [F39] >= b Then
                aa = Cells(i, "C"): bb = Cells(i + 1, "C")
                [F40] = ((aa - bb) / (a - b)) * ([F39] - b) + bb: Exit For
            End If
        Next
    End If
    
    If Target.Address = [F42].Address Then
        If [F42] < Application.Min([f]) Or [F42] > Application.Max([f]) Then
            [F40] = ""
            MsgBox "Введенное значение вне области функции"
            Exit Sub
        End If
        For i = Worksheets(1).Range("f").Rows To Worksheets(1).Range("f").Count
            aa = Cells(i, "C"): bb = Cells(i + 1, "C")
            If [F42] <= aa And [F42] >= bb Then
                a = Cells(i, "B"): bb = Cells(i + 1, "B")
                [F43] = (([F42] - bb) * (a - b)) / (aa - bb) + b
            End If
        Next
    End If
 
End Sub
НЕСПРАВНЫЙ КОД
Visual Basic
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
Private Sub Worksheet_Change(ByVal Target As Range)
 
    If Target.Address = [F39].Address Then 'выделение ячейки
        Dim i As Integer, a As Double, b As Double, aa As Double, bb As Double
        If [F39] < Application.Min([X]) Or [F39] > Application.Max([X]) Then
            [F40] = ""
            MsgBox "Введенное значение вне области функции"
            Exit Sub
        End If
        For i = Worksheets(1).Range("X").Rows To Worksheets(1).Range("X").Count
            a = Cells(i, "B"): b = Cells(i + 1, "B")
            If [F39] <= a And [F39] >= b Then
                aa = Cells(i, "C"): bb = Cells(i + 1, "C")
                [F40] = ((aa - bb) / (a - b)) * ([F39] - b) + bb: Exit For
            End If
        Next
    End If
    
    If Target.Address = [F42].Address Then
        If [F42] < Application.Min([f]) Or [F42] > Application.Max([f]) Then
            [F40] = ""
            MsgBox "Введенное значение вне области функции"
            Exit Sub
        End If
        For i = Worksheets(1).Range("f").Rows To Worksheets(1).Range("f").Count
            aa = Cells(i, "C"): bb = Cells(i + 1, "C")
            If [F42] <= aa And [F42] >= bb Then
                a = Cells(i, "B"): bb = Cells(i + 1, "B")
                [F43] = (([F42] - bb) * (a - b)) / (aa - bb) + b
            End If
        Next
    End If
 
End Sub
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.08.2021, 11:48
Ответы с готовыми решениями:

Ребята, не могу понять как исправить ошибку в 40 строчке
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;conio.h&gt; using namespace std; class date{...

Не могу понять ошибку кода
%2D FFT Demo %Import images imageA = imread('greekchurch','jpg'); imageB =...

Народ не могу понять почему в этой части кода выдает ошибку
Где выдает ошибку я выделил жирным, выдает ошибку &quot;Встречено '=', а ожидалось ';' &quot; пробовал...

не могу понять чего то не хватает в 4 строчке)
program Project1; uses Forms, Unit1 in 'Unit1.pas' Form1. {$R *.res} begin ...

8
533 / 375 / 76
Регистрация: 24.09.2017
Сообщений: 2,108
Записей в блоге: 13
17.08.2021, 13:30 2
У вас же программа должна останавливаться указывая на строку и сообщая код ошибки.
0
0 / 0 / 0
Регистрация: 17.08.2021
Сообщений: 12
17.08.2021, 14:18  [ТС] 3
Ошибка 1004
Миниатюры
Не могу понять в ошибку в строчке кода  
0
533 / 375 / 76
Регистрация: 24.09.2017
Сообщений: 2,108
Записей в блоге: 13
17.08.2021, 14:36 4
Скрипт не видит объекта, с которым ему надо работать. Вы передаёте в процедуру Target As Range. И процедура не видит какого-то объекта из серии Target.
В какой строке возникает ошибка?
0
0 / 0 / 0
Регистрация: 17.08.2021
Сообщений: 12
17.08.2021, 20:38  [ТС] 5
строка номер 10 неисправного кода
0
533 / 375 / 76
Регистрация: 24.09.2017
Сообщений: 2,108
Записей в блоге: 13
17.08.2021, 23:42 6
Лучший ответ Сообщение было отмечено AbramovBE как решение

Решение

Может так:
Visual Basic
1
For i = ThisWorkbook.Worksheets(1).Range("X").Rows To ThisWorkbook.Worksheets(1).Range("X").Count
0
533 / 375 / 76
Регистрация: 24.09.2017
Сообщений: 2,108
Записей в блоге: 13
20.08.2021, 19:57 7
AbramovBE, удалось решить проблему?
0
0 / 0 / 0
Регистрация: 17.08.2021
Сообщений: 12
23.08.2021, 10:29  [ТС] 8
Да, спасибо большое
0
533 / 375 / 76
Регистрация: 24.09.2017
Сообщений: 2,108
Записей в блоге: 13
23.08.2021, 15:03 9
Не за что
0
23.08.2021, 15:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.08.2021, 15:03
Помогаю со студенческими работами здесь

Ошибка в строчке с y, не могу понять что не так
Sub ppa() Dim x As Single, y As Single Const pi As Single = 3.141592 x = InputBox(&quot;x=&quot;, &quot;????...

исправить ошибку на 33 строчке кода
почему ошибка в 33 строчке кода? ( if (mass % 2 = 1) { ) и обьясните пожалуйста эту строчку кода...

Структура: Не могу понять, почему выдает ошибку и как собственно эту ошибку можно исправить?
Привет,не могу понять почему ошибку выдает и как сбстно эту ошибку можно исправить? #include...

Не могу понять ошибку
Помогите пожалуйста. Не монимаю чего именно хочет от меня программа и почему она ругается. Заранее...

Не могу понять ошибку
При попытке запустить код на Паскале появляется такая ошибка: Program1.pas(155) : Встречено...

Не могу понять ошибку
Помогите получить правильный ответ #include&lt;iostream&gt; using namespace std; int main() { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru