powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / convert vba to JS
8 сообщений из 8, страница 1 из 1
convert vba to JS
    #39596260
sanstile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помогите конвертировать в JS(GAS)... чтобы скрипт работал в гугл таблицах.


Код: vbnet
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.
Function SumFIFO(Products As Range, Product As String, amt As Range, price As Range)
Dim prod(), kol(), cost(), out(), i&, j&, sum#, sum2#, pr#

If Products.Count < 2 Or amt.Count < 2 Or price.Count < 2 Then SumFIFO = amt * price: Exit Function
prod = Products.Columns(1).Value
kol = amt.Columns(1).Value
cost = price.Columns(1).Value
If UBound(prod, 1) <> UBound(kol, 1) Or UBound(kol, 1) <> UBound(cost, 1) Then SumFIFO = CVErr(xlErrValue): Exit Function
ReDim out(1 To UBound(kol, 1), 1 To 1)
For i = 1 To UBound(out, 1)
  If prod(i, 1) = Product Then
        sum = 0
        If kol(i, 1) < 0 Then
            pr = -kol(i, 1)
            For j = 1 To i
              If kol(j, 1) > 0 Then
                If kol(j, 1) >= pr Then
                    kol(j, 1) = kol(j, 1) - pr
                    cost(i, 1) = (sum + pr * cost(j, 1)) / -kol(i, 1)
                    pr = 0: Exit For
                Else
                    pr = pr - kol(j, 1)
                    sum = sum + kol(j, 1) * cost(j, 1)
                    kol(j, 1) = 0
                End If
              End If
            Next j
            If pr <> 0 Then out(i, 1) = 0: Exit For
        End If
        sum2 = sum2 + kol(i, 1) * cost(i, 1)
    Else
        kol(i, 1) = 0
    End If
    out(i, 1) = sum2
Next i
SumFIFO = out
End Function
...
Рейтинг: 0 / 0
convert vba to JS
    #39596269
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanstile,

Помочь? Или за вас сделать?
...
Рейтинг: 0 / 0
convert vba to JS
    #39596274
sanstile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

можно помочь разобраться в строке . ну можете и все сделать , если вам не затруднит .


объяснить эту строку кода
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
If Products.Count < 2 Or amt.Count < 2 Or price.Count < 2 Then SumFIFO = amt * price: Exit Function
prod = Products.Columns(1).Value
kol = amt.Columns(1).Value
cost = price.Columns(1).Value
If UBound(prod, 1) <> UBound(kol, 1) Or UBound(kol, 1) <> UBound(cost, 1) Then SumFIFO = CVErr(xlErrValue): Exit Function
ReDim out(1 To UBound(kol, 1), 1 To 1)
For i = 1 To UBound(out, 1)
  If prod(i, 1) = Product Then
...
Рейтинг: 0 / 0
convert vba to JS
    #39596275
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут 8, какую именно?
...
Рейтинг: 0 / 0
convert vba to JS
    #39596276
sanstile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Код: vbnet
1.
If UBound(prod, 1) <> UBound(kol, 1) Or UBound(kol, 1) <> UBound(cost, 1) Then SumFIFO = CVErr(xlErrValue): Exit Function



пока писал понял немного, вчера тормозил.

функиция(Ub.) (имя масива, измерение) <> (меньше больше) функция(имя масива, измерение) .....

Then SumFIFO = CVErr(xlErrValue): // ????????


и еще

Код: vbnet
1.
Function SumFIFO(Products As Range, Product As String, amt As Range, price As Range)     //  зачем  в  скобках идет перечисление ??/ 
...
Рейтинг: 0 / 0
convert vba to JS
    #39596278
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanstile(меньше больше)это оператор "не равно", в JS это "!="

sanstileThen SumFIFO = CVErr(xlErrValue): // ????????В VB так идет присвоение некоей виртуальной переменной, которая будет возвращена как результат функции. То есть в JS можно в этом месте завести реальную переменную, а в конце функции будет return SumFIFO

sanstile
Код: vbnet
1.
 зачем  в  скобках идет перечисление ??

так это входые параметры функции, в JS будет то же самое
...
Рейтинг: 0 / 0
convert vba to JS
    #39596279
sanstile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
function Sfifo(products, product, amt, price) {      //  у  функции  есть имя  в  даном  случае  Sfifo   как  заставить ее работать в гугл  таблице 
                                                     //  как  в  Excel  = ("=ИНДЕКС(Sfifo(C$2:C3;C3;F$2:F3;G$2:G3);СЧЁТЗ(C$2:C3))")
  
  var prod, kol, cost, out, i, j, sum, sum1, pr;
  if(products.Count < 2 || amt.Count < 2 || price.Count < 2 );  //   надеюсь это верно  
return amt * price;
  .
  .
  .
  .
  .
  .
  .
  .
  .
  }
...
Рейтинг: 0 / 0
convert vba to JS
    #39596280
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanstile
Код: javascript
1.
 как  заставить ее работать в гугл  таблице 

вот это не скажу, погуглите, как создавать UDF для гугл-таблиц
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / convert vba to JS
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]