Excel, Vba, значение ячейки, Как преобразовать код так, как на скриншоте?

Как объясняется здесь здесь , ключевое различие заключается в том, что flatten является методом объекта ndarray и, следовательно, может быть вызван только для истинных массивов numpy. Напротив, ravel() является функцией уровня библиотеки и, следовательно, может быть вызвана на любой объект, который может быть успешно проанализирован. Например, ravel() будет работать над списком ndarrays, в то время как flatten недоступен для этого типа объекта.

@IanH также указывает на важные различия с обработкой памяти в его ответе.

0
задан Frost23 7 March 2019 в 21:08
поделиться

1 ответ

Вы забыли поставить r = r + 1 после

komz = komz - kom

    vntT(r, 1) = dz
    vntT(r, 2) = komz ' Debt
    vntT(r, 3) = dw
    vntT(r, 4) = kom  '  payment
    vntT(r, 5) = " .. komz > kom"

, поэтому он перезаписывает этот бит в следующем цикле.

РЕДАКТИРОВАТЬ: Надеюсь, теперь я понимаю это, и это то, что вам нужно: я думаю, это правильно, что вы перезаписали свой ряд, но это нужно только перезаписать последние три столбца. Поэтому я думаю, что в этом конкретном случае вам нужно проверить, есть ли уже значение в массиве в этой позиции, чтобы вы не перезаписывали его:

 If komz > kom Then

If cstr(vntT(r,1)) = "" then 'because of this if-statement, it will not overwrite previous values
   vntT(r, 1) = dz
   vntT(r, 2) = komz 'debt
end if
vntT(r, 3) = dw
vntT(r, 4) = kom 'payment
vntT(r, 5) = " komz>kom"

r = r + 1

РЕДАКТИРОВАТЬ (снова): я играл с вашими данными и, возможно, это то, что вам нужно?:

    If komz > kom Then
        If CStr(vntT(r, 1)) = "" Then 'because of this if-statement, it will not overwrite previous values
            vntT(r, 1) = dz
            vntT(r, 2) = komz 'debt
        End If
        vntT(r, 3) = dw
        vntT(r, 4) = kom 'payment
        vntT(r, 5) = " komz>kom"

        r = r + 1
        vntT(r, 1) = dz
        vntT(r, 2) = komz - kom
        vntS(i + 1, 2) = komz - kom
    ElseIf komz < kom Then

Я не уверен, что это правильный способ обработки платежей, но он ближе всего подходит к вашему первоначальному образцу, где все работало хорошо .

0
ответ дан Alex de Jong 7 March 2019 в 21:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: