neil 發問時間: 電腦與網際網路軟體 · 5 年前

excel vba 核取方塊 數個 合併程式

請問我新增了數個ACTIVEX控制項多個核取方塊,程式碼如何寫成一個呢

例:核取方塊1-10,勾選核取方塊1則儲存格K1為TRUE,勾選核取方塊2

儲存格K2為TRUE,不然之後每新增一個就多個程式碼,整個一長串

修改其中一個等於其他也要修改,有點麻煩。請問懂得大大有否合併的方法呢,

另我想K1=TRUE就列印SHEET1,K2=TRUE就列印SHEET2,...以此類推

請懂得大大幫個忙。感恩~~

已更新項目:

補充一下:我現在的程式是這樣

Private Sub CheckBox1_Click()

If CheckBox1.Value = True Then

[k1] = "v"

Else

[k1] = ""

End If

End Sub

Private Sub CheckBox2_Click()

If CheckBox2.Value = True Then

[K2] = "v"

Else

[K2] = ""

End If

End Sub

...以此類推下去

2 個已更新項目:

然後只要我之後手動新增一個方塊,她就會自動對應勾選的儲存格,不需再複製程式去修改

不燃100個方塊,就要修改100次。可否有合併的方法

另列印的部份是只要勾選的方塊對應的儲存格為V,則會列印工作表

例:K1=V則列印SHEET1,K2=V則列印SHEET2...以此類推,感謝懂得大大幫忙

1 個解答

評分
  • 5 年前
    最佳解答

    Sub 建立() '建立控制項

    On Error Resume Next

    Sheets(1).Activate

    Dim op As CheckBox: Dim i As Integer

    For i = 1 To ThisWorkbook.Sheets.Count - 1

    Sheets(1).Cells(i, 11).Select

    Formrng = Sheets(1).Cells(i, 11)

    op = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1")

    op.Left = Formrng.Left

    op.Top = Formrng.Top

    op.Width = Formrng.Width

    op.Height = Formrng.Height

    Next i

    End Sub

    Sub 列印() '列印選取控制項

    Sheets(1).Activate

    For i = 2 To ThisWorkbook.Sheets.Count

    If Sheets(1).OLEObjects("CheckBox" & i - 1).Object.Value = True Then

    Sheets(1).Cells(i - 1, 11) = "TRUE"

    End If

    Next i

    For i = 1 To ThisWorkbook.Sheets.Count - 1

    If Sheets(1).Cells(i, 11) = True Then

    Sheets(Sheets(1).Cells(i, 11).Row + 1).Activate

    ActiveSheet.UsedRange.PrintOut

    End If

    Next i

    End Sub

    參考資料: 自己
還有問題?馬上發問,尋求解答。