使用 資料>驗證>儲存格的下拉式清單,可以讓下拉顯示窗格增加列數嗎?
- 帖子
- 7
- 主題
- 3
- 精華
- 0
- 積分
- 61
- 點名
- 0
- 作業系統
- WIN7
- 軟體版本
- OFFICE2007
- 閱讀權限
- 20
- 性別
- 男
- 來自
- KHH
- 註冊時間
- 2010-11-21
- 最後登錄
- 2012-10-24
|
使用 資料>驗證>儲存格的下拉式清單,可以讓下拉顯示窗格增加列數嗎?
請問使用 資料>驗證>儲存格的下拉式清單,下拉顯示窗格只有8列,超出即須使用捲軸,可以讓下拉顯示窗格增加列數嗎?
|
-
1
評分人數
-
|
|
|
|
|
|
暱稱: 阿吉 頭銜: 不恥下問,不斷學習,才會進步
版主  
- 帖子
- 647
- 主題
- 190
- 精華
- 24
- 積分
- 1037
- 點名
- 0
- 作業系統
- windows7
- 軟體版本
- Office 2010 ; OOO3.0 ; Google
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 竹南
- 註冊時間
- 2010-5-2
- 最後登錄
- 2022-6-24
  
|
2#
發表於 2010-12-11 15:58
| 只看該作者
本帖最後由 Hsieh 於 2010-12-12 23:49 編輯
回復 1# sasser
基本上這一帖 以前在EXCELHELP 上有人發表過
但目前EXCELHELP以已關版
我將文章貼在這HUNGCHILIN
檔案連結也沒有了無法下載
使用下列程式 COPY 後 貼到這個檔案中的 THISWORKBOOK 程式區內就可以使用了
----------------------------------------------------------------------------------------
加長 驗證 的長度及寬度
這篇關於驗證的文章 對於驗證有很大的幫助
可以突破excel限制使驗證清單拉長會比較方便
轉貼給各位參考- Option Explicit
- Dim oDpd As Object
- Dim sFml1
- Dim prvTarget As Range
- Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
- Const dFixedPos As Double = "0.8"
- Const dFixWidth As Double = "16" ' 改變 DropDown 的寬度
- Dim vld As Validation
- Dim lDpdLine As Long
- If Not prvTarget Is Nothing Then
- If Not oDpd Is Nothing Then
- If oDpd.value = 0 Then
- prvTarget.value = vbNullString
- Else
- prvTarget.value = Range(Mid(sFml1, 2)).Item(oDpd.value)
- End If
- Set prvTarget = Nothing
- End If
- End If
- On Error Resume Next
- oDpd.Delete
- sFml1 = vbNullString
- Set oDpd = Nothing
- On Error GoTo 0
- If Target.Count > 1 Then
- Set oDpd = Nothing
- Exit Sub
- End If
- Set vld = Target.Validation
- On Error GoTo Terminate
- sFml1 = vld.formula1
- On Error GoTo 0
- Set prvTarget = Target
- lDpdLine = Range(Mid(sFml1, 2)).Rows.Count
- With Target
- Set oDpd = ActiveSheet.DropDowns.Add( _
- .Left - dFixedPos, _
- .Top - dFixedPos, _
- .Width + dFixWidth + dFixedPos * 2, _
- .Height + dFixedPos * 2)
- End With
- With oDpd
- .ListFillRange = sFml1
- .DropDownLines = lDpdLine
- .Display3DShading = True
- End With
- Terminate:
- End Sub
複製代碼 轉帖自 excelhelp |
|
|
|
|
|
|
暱稱: 阿吉 頭銜: 不恥下問,不斷學習,才會進步
版主  
- 帖子
- 647
- 主題
- 190
- 精華
- 24
- 積分
- 1037
- 點名
- 0
- 作業系統
- windows7
- 軟體版本
- Office 2010 ; OOO3.0 ; Google
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 竹南
- 註冊時間
- 2010-5-2
- 最後登錄
- 2022-6-24
  
|
3#
發表於 2010-12-11 15:59
| 只看該作者
|
|
|
|
|
|
- 帖子
- 7
- 主題
- 3
- 精華
- 0
- 積分
- 61
- 點名
- 0
- 作業系統
- WIN7
- 軟體版本
- OFFICE2007
- 閱讀權限
- 20
- 性別
- 男
- 來自
- KHH
- 註冊時間
- 2010-11-21
- 最後登錄
- 2012-10-24
|
4#
發表於 2010-12-12 10:52
| 只看該作者
回復 3# HUNGCHILIN
感謝版主指導, 測試ok, 解決了我的困擾, 不過內容尚未完全參透, 需要再花點時間研究 |
|
|
|
|
|
|
- 帖子
- 7
- 主題
- 3
- 精華
- 0
- 積分
- 61
- 點名
- 0
- 作業系統
- WIN7
- 軟體版本
- OFFICE2007
- 閱讀權限
- 20
- 性別
- 男
- 來自
- KHH
- 註冊時間
- 2010-11-21
- 最後登錄
- 2012-10-24
|
5#
發表於 2010-12-12 11:31
| 只看該作者
回復 2# HUNGCHILIN
發現一個狀況, 當同一儲存格已輸入完成, 若再選取該儲存格時, 則原先內容會被清空, 請問有解嗎?
|
|
|
|
|
|
|
- 帖子
- 135
- 主題
- 19
- 精華
- 0
- 積分
- 165
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- 2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 香港
- 註冊時間
- 2010-12-9
- 最後登錄
- 2012-8-27
|
6#
發表於 2010-12-12 21:09
| 只看該作者
本帖最後由 FAlonso 於 2010-12-14 12:25 編輯
- If Not prvTarget Is Nothing Then
- If Not oDpd Is Nothing Then
- If oDpd.value = 0 Then
- prvTarget.value = vbNullString
- Else
- prvTarget.value = Range(Mid(sFml1, 2)).Item(oDpd.value)
- End If
- Set prvTarget = Nothing
- End If
- End If
- On Error Resume Next
- oDpd.Delete
- sFml1 = vbNullString
- Set oDpd = Nothing
- On Error GoTo 0
複製代碼 這段程式怎麼解,想了很久都沒頭緒
還有這個VBA似乎有一個後遺症,就是當click有下拉式清單格子時,它會自動增加一個下拉式清單(及其編號也節節上升),搞得該格子滿是清單,混亂至極
有沒有辦法把清單的.listfullrange及.dropdownlines設定replace掉就算了? |
|
80 字節以內
不支持自定義 Discuz! 代碼
|
|
|
|
|