1
私はここ(VBA初心者)です。私は空ではないRange( "B21:B40")のセルに対してのみチェックボックスを設定するようにこのコードを修正しようとしました。Excelビハインドセルが空でないときにチェックボックスを設定するVBAコード
コードは準備ができていません。チェックボックス
Sub ActiveCheckBox()
Dim setRange As Range, cel As Range
Dim checkRange As Range, cel1 As Range
Dim wks As Worksheet
Dim cb As Checkbox
Set wks = Sheets("InterFace")
Set setRange = wks.Range("A21:A25")
Set checkRange = wks.Range("B21:B25")
For Each cel1 In checkRange
If cel1 <> "" Then
For Each setRange In checkRange
Set cb = cel.Worksheet.CheckBoxes.Add(cel.Left + cel.Width/2 - 8.25, _
cel.Top + cel.Height/2 - 8.25, 0, 0) ' 8.25 is cb.Height/2
With cb
.Text = vbNullString ' to clear Caption
.LinkedCell = cel.Address(0, 0) ' Example A1 instead of $A$1
.Name = "cb" & cb.LinkedCell ' optional
End With
Next
End If
Next
setRange.NumberFormat = ";;;" ' optional to hide the cell values
End Sub
構築するにはを設定します(「A25 A21」):(「B25 B21」)をし、レンジ内の次の私は、範囲内のコンテンツをチェックすること1 pararell作業各ループのための2つを構築する方法をよく分かりませんこのトピックのコードを使用しましたScript to Insert a Checkbox into every cell and assign it to that cell in Excel 私が間違っていることを教えてください。
どのようなチェックボックスですか? Formcontrol経由で、またはActiveXから? – BruceWayne
あなたは 'For each * cel1 *'を持っています。そして、後であなたは '* cel * .left'を1つも持っていません。 * checkRange *列Bを調べると、 'cel.offest(0、-1)'を使って列Aのセルが空であることを確認できます。 'if cel.offset(0、-1)<>" "Then'そして* set cb = cel.worksheetを使ってセルにチェックボックスを入れます...... * – Gordon