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

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

публикувано (редактирано)

Имам 4 колони и искам колона D да се сравява с колона M, а колона E да се сравнява с колона N И ако има еднакви числа да се нулират и всичко да се случва с едно кликане на бутонче в Excel,  но немога да обединя кода. Този със сигурност не работи, по отделно работят но незнам как да ги обединя в едно. Бихте ли ми помогнали?

 

Dim x As Range, y As Range, z As Range, q As Range, de As Range

Set x = Range("D1:D20")
Set y = Range("N1:N20")
Set q = Range("E1:E20")
Set z = Range("M1:M20")
Set de = Range("D1:E20")
de.Select
For Each x In Range("D1:D20")
    For Each y In Range("N1:N20")
        For Each z In Range("E1:E20")
            For Each q In Range("M1:M20")
        If x.Value = y.Value Then
            x.Value = 0
            y.Value = 0
        End If
        
         If z.Value = q.Value Then
            z.Value = 0
            q.Value = 0
        End If
        
            Next q
        Next z
    Next y
Next x

Редактирано от ExaFlop (преглед на промените)

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


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

публикувано (редактирано)

Ами помисли малко.

Защо всички цикли са вложени един в друг. Правиш проверките една след друга, две по две, но първо единия, после другия.

И защо е това задаване на стойности на Range в началото, а de поне за момента е излишно, а z и q също.

Dim x As Range, y As Range
For Each x In Range("D1:D20")
   For Each y In Range("M1:M20")
        If x.Value = y.Value Then
            x.Value = 0
            y.Value = 0
        End If
 next y
next x


 For Each x In Range("E1:E20")
  For Each y In Range("N1:N20")   
      If x.Value = y.Value Then
        x.Value = 0
        y.Value = 0
      End If
   Next q
 Next z
 

Редактирано от TRN (преглед на промените)
  • Харесва ми 2

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


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

Ами помисли малко.

Защо всички цикли са вложени един в друг. Правиш проверките една след друга, две по две, но първо единия, после другия.

И защо е това задаване на стойности на Range в началото, а de поне за момента е излишно, а z и q също.

Dim x As Range, y As Range
For Each x In Range("D1:D20")
   For Each y In Range("M1:M20")
        If x.Value = y.Value Then
            x.Value = 0
            y.Value = 0
        End If
 next y
next x


 For Each x In Range("E1:E20")
  For Each y In Range("N1:N20")   
      If x.Value = y.Value Then
        x.Value = 0
        y.Value = 0
      End If
   Next q
 Next z
 

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

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


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

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

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

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

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

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

Вход

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

Вход

  • Разглеждащи това в момента   0 потребители

    Няма регистрирани потребители разглеждащи тази страница.

  • Горещи теми в момента

  • Подобни теми

    • от Bbt_sm
      Мога ли да присвоя няколко стойности на една променлива. Т.е искам в екселски файл, да се търсят няколко стойности едновременно, например find = "Пловдив", "София,"Варна" , но възможно ли е икак се пише на VBA
    • от Bbt_sm
      Искам програма, която да намира определено наименование в ексел и щом го намери да нулира стойностите, нанесени на редовете срещу него. Немога да напиша работещ код на VBA. Ще може ли малко помощ!
       
    • от Bbt_sm
      Здравейте. Трябва да направя Macros в Excel, като имам 4 колони и трябва когато срещне еднакво число в колоната да се елиминира, но немога да направя формулата или цикъл на basic. Можете ли да ми помогнете?
    • от DFBHD
      Здравейте приятели!
      Имам едно питане по един елементарен въпрос. Нещо което знам как се прави, правил съм го много пъти, на моя проект стана но сега се опитвам да го направя на един приятел и не се получава. Става въпрос за формулата =CORREL в Excel. Ще ви прикача снимка за да видите за какво става на въпрос. Показва ми че не на 0 не може да се дели... а никъде в данните няма 0 ... буквално се чудя защо не иска да се получи... Благодаря предварително за съдействието!
       

    • от paulao
      Здравейте,
      оказа се че е сериозен проблема с възстановяването на изтрити doc и xls файлове. Файловете са възстановени но имам чувството че са им разместени съдержанията и разменени разширенията. Някой от файловете се отварят нормално но по-голямата част от тях показват съобщение за промяна на енкондинга и след това се отваря маймуница. Намерих разни програми за поправка на такива файлове но не работят. Има ли някакъв начин да се спаси някой такъв файл, дори с платена програма да е.
  • Дарение

×

Информация

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