Премини към съдържанието

Препоръчан отговор


Run time-error:13
Type missmach

 

Кодът е следният:

Dim CompareRange As Range, x As Range
    Set CompareRange = Range("N1:N500")
    Set x = Range("D1:D500")
    x.Value = 255
    CompareRange.Value = 255
    If x.Value = CompareRange.Value Then MsgBox "raboti"
End Sub

 

Защо ми дава тази грешка и какво тябва да направя?  Бихте ли ми помогнали?

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

преди 11 часа, Bbt_sm написа:

 

Run time-error:13
Type missmach

 

 

Кодът е следният:

Dim CompareRange As Range, x As Range
    Set CompareRange = Range("N1:N500")
    Set x = Range("D1:D500")
    x.Value = 255
    CompareRange.Value = 255
    If x.Value = CompareRange.Value Then MsgBox "raboti"
End Sub

 

Защо ми дава тази грешка и какво тябва да направя?  Бихте ли ми помогнали?

Програмирането не е опити.

Когато задаваш set x =Range("D1:D500") и след това x.Value = 255 това означава, че всички клетки в диапазона ще приемат тази стойност и това се приема от Excel.
Но не може да работиш с x.value, защото това е тип Range, а при Range има много стойности, обединени в  един обект и няма как да ги сравняваш по стойност.
За да стане това е необходимо да ползаваш само една от тях, например x(12).Value=CompareRange(12).Value - това взема поредната 12-та стойност от тях, или да се направи цикъл For each и да се проверяват една по една.

Ако разбра нещо добре.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
на 15.05.2017 г. в 8:59, TRN написа:

Програмирането не е опити.

Когато задаваш set x =Range("D1:D500") и след това x.Value = 255 това означава, че всички клетки в диапазона ще приемат тази стойност и това се приема от Excel.
Но не може да работиш с x.value, защото това е тип Range, а при Range има много стойности, обединени в  един обект и няма как да ги сравняваш по стойност.
За да стане това е необходимо да ползаваш само една от тях, например x(12).Value=CompareRange(12).Value - това взема поредната 12-та стойност от тях, или да се направи цикъл For each и да се проверяват една по една.

Ако разбра нещо добре.

Да всичко разбрах, но не съм програмист , просто ми трябва един бутон в Excel и трябва да го направя и това е. Благодаря за обяснението.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.