乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      excel設(shè)置下拉框多選

       liang1234_ 2019-01-11

      在一個系統(tǒng)剛上線時,需要把以前的數(shù)據(jù)導入系統(tǒng),方便使用與管理,程序不是萬能的,導入表格要符合系統(tǒng)要求的規(guī)則才能順利地導入。在整理龐大而又繁瑣的數(shù)據(jù)時,為了減少系統(tǒng)報錯的概率,可以事先對excel的表格格式做處理。文章里要說的是一個不常用到的一個小技巧-----下拉框多選。我問了百度,找到了一些方法,把最簡單最快捷的方法給出來,像我一樣不懂宏不懂代碼的小伙伴可以看下。

      首先在某列利用數(shù)據(jù)有效性-建立下拉菜單表。數(shù)據(jù)-->數(shù)據(jù)有效性-->數(shù)據(jù)有效性,“允許”選擇“序列”,然后把需要選擇的內(nèi)容輸入到來源里,中間用英文逗號“,”隔開。下拉框單選便成了。

      設(shè)置單選的下拉框
      單選下拉框

      然后在下拉表所打開的sheet中(如sheet1),鼠標右擊下面的工作表,選擇“查看代碼”,就可打開VBA編輯界面。復制下方的代碼,并將其中一行的   If Target.Column = 7 Then    中的7修改為下拉數(shù)據(jù)表所在的列數(shù),搞定。第幾列便是數(shù)字幾,A是1,B是2,以此類推。

      7這個數(shù)字代表第幾列

      表格中兩個選項間用中文逗號、英文逗號、頓號、橫杠等等符號隔開,把下面兩句代碼中雙引號間的符號改為想要的符號即可,注意二者要保持一致。

      選項間的間隔符號

      代碼:

      Private Sub Worksheet_Change(ByVal Target As Range)

      Dim rngDV As Range

      Dim oldVal As String

      Dim newVal As String

      If Target.Count > 1 Then GoTo exitHandler

      On Error Resume Next

      Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)

      On Error GoTo exitHandler

      If rngDV Is Nothing Then GoTo exitHandler

      If Intersect(Target, rngDV) Is Nothing Then

        'do nothing

      Else

        Application.EnableEvents = False

        newVal = Target.Value

        Application.Undo

        oldVal = Target.Value

        Target.Value = newVal

        If Target.Column = 7 Then 

          If oldVal = '' Then

            'do nothing

            Else

            If newVal = '' Then

            'do nothing

            Else

              If InStr(1, oldVal, newVal) <> 0 Then  

                If InStr(1, oldVal, newVal) Len(newVal) - 1 = Len(oldVal) Then 

                  Target.Value = Left(oldVal, Len(oldVal) - Len(newVal) - 1)

                Else

                  Target.Value = Replace(oldVal, newVal & ',', '')

                End If

              Else 

              Target.Value = oldVal & ',' & newVal

      '      NOTE: you can use a line break,

      '      instead of a comma

      '      Target.Value = oldVal _

      '        & Chr(10) & newVal

              End If

            End If

          End If

        End If

      End If

      exitHandler:

        Application.EnableEvents = True

      End Sub

      代碼來源:知乎

      鏈接:https://www.zhihu.com/question/20484204/answer/142569580


      說明:代碼中 ' 后面的內(nèi)容為說明文字,可以刪除,不影響代碼的執(zhí)行,放在excel里會變?yōu)榫G色,這些只是說明。當然也可以加 ' ,然后加入自己要說明的東西。

      “ ‘ ” 后面的內(nèi)容為說明,可刪除

      額外說明:

      excel保存時會提示宏無法保存,這個問題目前還沒研究出來,慶幸本次的設(shè)計只是給自己公司內(nèi)部人用的,所以只能復制代碼給他們,讓他們自己復制一遍了。

      如果哪位大神有解決辦法,望賜教~~



      補充:有朋友問到,上面的代碼只能實現(xiàn)一列的多選,那如果我有兩列或更多列要多選,該怎么實現(xiàn)呢?

      這個很容易實現(xiàn),加or,

      If Target.Column = 7 or arget.Column = 8 Then

      即可實現(xiàn)很7列與第8列同時多選。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多