Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
5 / 5 / 1
Регистрация: 11.02.2013
Сообщений: 236
1

Где может быть ошибка?

19.06.2013, 18:21. Просмотров 644. Ответов 7
Метки нет (Все метки)

Уважаемые форумчане, столкнулся со следующей проблемой... Написал макрос, в котором в столбце AK должны проставляться два значения "Коробка" или "-" в зависимости от того целое число Dist/Sales_Package или нет. Вроде как работает, но вот когда зажимаешь автофильтр в шапке файла, независимо от результата значение только "Коробка". В чем может быть дело?

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Private Sub Worksheet_Change(ByVal Target As Range)
 
        Dim Dist(), Corr(), Vol(), Mass(), Price(), Sales_Package(), Comment(), i&, outfile As Object
        Dim LastRow As Long
        
        LastRow = Range("A5").End(xlDown).Row
        
        
        Dist = Range("S5:S" & LastRow).Value 
        Corr = Range("T5:T" & LastRow).Value 
                               
        Vol = Range("I5:I" & LastRow).Value 
        Mass = Range("J5:J" & LastRow).Value 
        Price = Range("R5:R" & LastRow).Value 
        Sales_Package = Range("P5:P" & LastRow).Value 
        Comment = Range("AK5:AK" & LastRow).Value 
        
        ReDim Total_Vol(1 To UBound(Dist), 1 To 1)
        ReDim Total_Mass(1 To UBound(Dist), 1 To 1)
        ReDim Total_Price(1 To UBound(Dist), 1 To 1)
        
        ReDim Total_Corr_Vol(1 To UBound(Dist), 1 To 1)
        ReDim Total_Corr_Mass(1 To UBound(Dist), 1 To 1)
        ReDim Total_Corr_Price(1 To UBound(Dist), 1 To 1)
        
        'ReDim Comment(1 To UBound(Dist), 1 To 1)
        'ReDim S_Package(1 To UBound(Dist), 1 To 1)
        
 
    '==========================================================================================
    
    If Not Application.Intersect(Target, Range("S5:S" & Rows.Count)) Is Nothing Then
            
        For i = 1 To UBound(Dist)
            
            If Sales_Package(i, 1) = 0 Then
                Sales_Package(i, 1) = 1
            End If
            
            If Dist(i, 1) / Sales_Package(i, 1) - Fix(Dist(i, 1) / Sales_Package(i, 1)) = 0 Then
                Comment(i, 1) = "Коробка"
                               
            End If
            If Dist(i, 1) / Sales_Package(i, 1) - Fix(Dist(i, 1) / Sales_Package(i, 1)) > 0 Then
                Comment(i, 1) = "-"
            End If
        Next i
        
        ActiveSheet.Range("AK5:AK" & LastRow).Value = Comment
        
    End If
    
    '==========================================================================================
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2013, 18:21
Ответы с готовыми решениями:

Подскажите пожалуйста где может быть ошибка
Здравствуйте. В VBA я только 7 день, потому сам не могу разобраться( Все вы знаете про врачебный...

C чем может быть связана ошибка?
Здравствуйте, уважаемые программисты!Помогите, пожалуйста, разобраться: с чем может быть связана...

Подскажите, где может быть ошибка (структуры)? (скорее всего где-то амперсенд нужен, все вроде проверил)
написать универсальный тип, который представляет точку на плоскости в координатах (х, у) и в...

где может быть ошибка ?
По идее этот код должен работать, так как она взята из методички, но проблема в том что это при...

7
Модератор
26404 / 13772 / 2624
Регистрация: 12.02.2012
Сообщений: 22,584
19.06.2013, 18:30 2
"-" - это спецсимвол. При занесении минуса в ячейку пиши так:

Visual Basic
1
...Cells(***,***).Value="'-"
т.е. предваряй его апострофом.
0
5 / 5 / 1
Регистрация: 11.02.2013
Сообщений: 236
20.06.2013, 13:22  [ТС] 3
Прописал, как вы посоветовали, но результат тот же. Пока не зажимаешь фильтр, работает нормально, как только зажал фильтр в шапке, выводится только значение "Коробка"...

Добавлено через 4 часа 3 минуты
Тема актуальна
0
Модератор
26404 / 13772 / 2624
Регистрация: 12.02.2012
Сообщений: 22,584
20.06.2013, 14:36 4
Вот картинка:
0
Миниатюры
Где может быть ошибка?  
5 / 5 / 1
Регистрация: 11.02.2013
Сообщений: 236
20.06.2013, 15:29  [ТС] 5
Если будет возможности, посмотрите пожалуйста файл.
Фильтр зажал, должно быть так: S/P целое - Коробка, дробное - "-" (колонка АК)

Сейчас при внесении изменений в колонку S значения в АК не меняются
0
Вложения
Тип файла: zip Template_Ярославль.zip (634.7 Кб, 2 просмотров)
Модератор
26404 / 13772 / 2624
Регистрация: 12.02.2012
Сообщений: 22,584
20.06.2013, 16:23 6
Я выделил строку, выбрал автофильтр... Результат прилагаю.
0
Вложения
Тип файла: zip Template_Ярославль.zip (646.3 Кб, 2 просмотров)
5 / 5 / 1
Регистрация: 11.02.2013
Сообщений: 236
20.06.2013, 17:54  [ТС] 7
Возможно мы немного о разном. Если, например, отпустить вес фильтры и поставить фильтр "Учетной цены" на любое конкретное значение, и поставив в колонке S (Распределение) любое значение, деление которого на значение из колонки O (Склад. уп.) дает дробное число, то в колонке АК (Комментарий) значение "Коробка" сохранится (а должно быть "-")

Фильтр на колонку АК редко используется

Добавлено через 17 минут
Вот принтскрин ошибки
0
5 / 5 / 1
Регистрация: 11.02.2013
Сообщений: 236
20.06.2013, 17:56  [ТС] 8
Забыл приложить...
0
Миниатюры
Где может быть ошибка?  
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.06.2013, 17:56

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Где может быть ошибка?
Такое дело. Вычислял погрешность двумя способами Где-то ошибка.Можете сказать правильно ли...

Где может быть ошибка?
Здравствуйте, есть файл Prepods.xml вот его содержимое: <?xml version="1.0" encoding="utf-8"?>...

Где может быть ошибка?
#include <iostream> #include <queue> #include <string> using namespace std; int main(){ ...

где может быть ошибка на с++
при подсчете sn через 5 членов цикл повторяется вот текст программы #include <iostream>...

Где может быть ошибка
Ребята, где может быть проблема? Не могу найти! Программа работает не правильно, с данным массивом...

Где здесь может быть ошибка?
Подскажите пж, Где здесь может быть ошибка? #include <stdio.h> void main() { char text...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.