2016-05-31 3 views
0

У меня есть два массива с кучей условностей, оценивающих данные.Excel VBA Импортирование условных выражений

And Not Left(CStr(Cells(r, cA)), 1) = "8" And Not Cells(r, cH) = "-190001010000" Or Cells(r, cH) = "190001010000" Then 

Сейчас у меня есть все ячейки в строке г и столбца сА, начинающиеся с «8» собирается в массив 2.

Но я хочу все ячейки в строке г и столбце сА в то время как клетка г , CH равно '-190001010000' или равно '-190001010000' для перехода в массив 2.

Я не верю, что вторая половина моего условного оператора оценивает?

Вот полные условия:

     If Not Left(CStr(Cells(r, cC)), 3) = "722" _ 
         And Not CStr(Cells(r, cC)) = "32DP2C" _ 
         And Not CStr(Cells(r, cC)) = "325SFC" _ 
         And Not CStr(Cells(r, cC)) = "78462F103" _ 
         And Not CStr(Cells(r, cM)) = "Fofprice" _ 
         And Not Cells(r, cH) = "-190001010000" _ 
         And Not Cells(r, cH) = "190001010000" Then 
         'And 'Not (Left(CStr(Cells(r, cA)), 1) = "8") Then 

ответ

0

Попробуйте положить()

And Not Left(CStr(Cells(r, cA)), 1) = "8" And (Cells(r, cH) = "-190001010000" Or Cells(r, cH) = "190001010000") Then 

И я заметил, "не" прямо перед клетками (г, сН). Вы хотите, чтобы он не равнялся -190 ... или 190 ...?

Или вы хотите его, когда он равен -190 ... или 190 ...?

+0

да, когда он равен -190 или 190 – phillipsK

+0

Затем над кодом должен работать. Вам нужно сгруппировать «cell = 8 и (cell = -190 .. или cell = 190 ..)», используя «()». В противном случае он будет искать «cell = 8 и cell = -190» или «cell = 190» – MutjayLee

+0

все еще не работает. Я думал о переупорядочении и установке «Left (CStr (Cells (r, cA)), 1) = «8» после первого испытания равным -190 или 190 – phillipsK

Смежные вопросы