在列公式中執行新窗口對話框腳本<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我有一列(“BIN”),帶有一堆不同的字符值,數據集中的每一行都指的是一個經過測試的唯一單元。無需轉換/匯總數據集,我想創建一個列公式,提示用戶使用ListBox對話框,其中包含“BIN”列中所有唯一值的集合。在ListBox中選擇所需的值後,在“BIN”列中具有值的單位將為生成的列(“BIN_DISPOSITION”)設置值1,並且具有不具有“BIN”的單位的列“與ListBox選擇匹配的值將為生成的列設置值0(”BIN_DISPOSITION“)。
例:
在用戶運行公式列並選擇“BIN2”和“BIN3”的情況下,需要以下輸出。
單元#
| BIN | BIN_DISPOSITION(由列公式生成) |
|---|
單元1 | BIN1 | 0 |
| 單元2 | BIN2 | 1 |
| UNIT3 | BIN2 | 1 |
| UNIT4 | BIN1 | 0 |
| 48頁免費 | BIN3 | 1 |
腳本:
bin_values_all = {} ;
bin_values_all_sorted = {} ;
bin_values_selected = {} ;
如果 ( 行 () == 1 ,
對於每一行 ( 如果 ( !包含 ( bin_values_all ,: BIN [ 行 ()]) ,
插入 ( bin_values_all , : BIN [ 行 ()])
) ;
bin_values_all_sorted = 升序 ( bin_values_all ) ;
新窗戶 ( “BIN值選擇” ,莫代爾,
大綱框 ( “BIN值選擇” ,
磅 = 列錶框 (
bin_values_all_sorted
) ,
按鈕框 ( “好” ,
bin_values_selected = 磅 << GetSelected
) ;
如果 ( 包含 ( bin_values_selected , : BIN ) ,
1 ,
0
) ;
我不得不添加條件If(Row()== 1 ...),以便對話框和列表生成不會運行多次,但似乎我的每次上面的變量聲明都會重新初始化,不是我想要的。
我不太確定是否有內置方法可以做到這一點。
想知道是否有人有任何想法。
謝謝,
J.P
Re:在列公式中執行新窗口對話框腳本我想出瞭如何使這個工作。
我沒有在第一個條件語句之前初始化列表,而是將它們放在Row()== 1的情況下,並使用前綴'::'將它們轉換為全局變量。
如果 ( 行 () == 1 ,
:: bin_values_all = {} ;
:: bin_values_all_sorted = {} ;
:: bin_values_selected = {} ;
對於每一行 ( 如果 ( !包含 ( bin_values_all , : BIN [ 行 ()]) ,
插入 ( bin_values_all , : BIN [ 行 ()])
) ;
bin_values_all_sorted = 升序 ( bin_values_all ) ;
新窗戶 ( “BIN值選擇” ,莫代爾,
大綱框 ( “BIN值選擇” ,
磅 = 列錶框 (
bin_values_all_sorted
) ,
按鈕框 ( “好” ,
bin_values_selected = 磅 << GetSelected
) ;
如果 ( 包含 ( bin_values_selected , : BIN ) ,
1 ,
0
) ;