tft每日頭條

 > 生活

 > wps版excel怎麼設置下拉篩選

wps版excel怎麼設置下拉篩選

生活 更新时间:2024-06-22 18:15:05

wps版excel怎麼設置下拉篩選?本節将在宏查詢的SQL語句加入篩選條件,下面我們就來聊聊關于wps版excel怎麼設置下拉篩選?接下來我們就一起去了解一下吧!

wps版excel怎麼設置下拉篩選(WPS報表JS宏查詢加入篩選條件)1

wps版excel怎麼設置下拉篩選

本節将在宏查詢的SQL語句加入篩選條件。

在上一節中使用常量定義了whereStr,在本節中,将這個語句設定成從報表上面标黃的查詢條件中動态獲取。

修改查詢按鈕代碼如下:

//查詢按鈕的單擊事件 function CommandButton1_Click() { //使用變量ReportSh 引用工作表對象:報表 let ReportSh = Application.Worksheets.Item("報表") //使用變量ReportQuery 引用報表工作表内的查詢對象 let ReportQuery = ReportSh.QueryTables.Item(1) //DictSh 引用工作表對象:字典 let DictSh = Application.Worksheets.Item("字典") //先定義一個 where 語句來測試 sql 語句 //const whereStr = 'where (left([單位],6)="101006") and ([計劃月份] between "01" and "05")' /******* 注釋掉上面的語句,使用getWhereStr函數動态替換 ***/ /* * 将字典工作表D1單元格存儲的sql語句取出 * 并使用 getWhereStr函數的返回值替換語句中的 ? */ let sqlstr = DictSh.Range("D1").Value2.replace(/\?/g, getWhereStr(ReportSh)) // Console.log(sqlstr) //将sqlstr 賦值給查詢對象,并刷新查詢 ReportQuery.CommandText = sqlstr ReportQuery.Refresh() }

切換到lib模塊,将 getWhereStr()這個函數完善。代碼如下:

/* 函數名:getWhereStr 獲取報表工作表上設定的條件 * 參 數:傳入一個參數Sh 為工作表的引用 * 返回值:sql語句 */ function getWhereStr(Sh) { //定義where語句, true後面方便加語句,即便不加語句,也不會出錯 let WhereStr = " where true" //定義單位名稱 使用Text屬性,适應單元格為空的情況 //單元格為空時,屬性Value2是undefined,不能使用substr //非要使用Value2,則可以:if (Sh.Range('f1').Value2){ alert("可用")} else {alert("不可用")} let UnitName = Sh.Range('f1').Text.substr(0,7) //加入條件字符串 如果單位選擇全部或者沒選擇單位 則去掉單位篩選 if (UnitName == '' || UnitName =='0-全部'){} else { WhereStr = " and (left([單位],7) = '" UnitName "')" } /* 三元表達式可精簡上面if語句,但影響可讀性: WhereStr = UnitName == '' || UnitName =='0-全部' ? "" : " and (left([單位],7) = '" UnitName "')" */ //定義設置月份 也就是結束的月份 let EndMonth = Sh.Range('c1').Text.substr(0,2) //定義月份期間 也就是開始的月份 let BeginMonth = Sh.Range('c2').Text //沒有設置月份的時候,不進行篩選,即提取所有月份的數據 if (EndMonth !=''){ /* 定義開始月份 并定義默認值為'01' 即年初 變量(賦值符号)(條件) ? (表達式1):(表達式2) 三元表達式,條件為真時,返回表達式1,否則返回表達式2 可以在表達式1和2中嵌套三元表達式使用 */ BeginMonth = BeginMonth == '當月' ? EndMonth : '01' //加入條件字符串 如果開始月份與結束月份一緻,則使用=,否則使用between and WhereStr = BeginMonth == EndMonth ? " and ([計劃月份] = '" EndMonth "')" : " and ([計劃月份] between '" BeginMonth "' and '" EndMonth "')" } //返回sql語句 return WhereStr }

在【報表】工作表中,點擊【查詢】按鈕,可以看到數據被刷新了。

修改【報表】工作表上面的條件,可以看到不同的報表數據。

本節到此結束,下一節,将完善查詢明細的按鈕代碼。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved