![](/img/trans.png)
[英]Excel VBA for hiding cells in one sheet if they match cells in another sheet
[英]Pasting the checked items of a Sheet to the colored cells of another sheet in VBA Excel
我有一个VBA ZC1D81AF5835844B4E9D936910DEDED8FDCZ程序,将单元值复制到下一个单元格1的复选框中时,将单元值复制到另一张纸的有色单元格。 现在我的问题是:1。检查各个行的复选框时,它将复制上述单元格的值。(例如,当21个“ n no”“ s”检查框时,它复制了值20)2。当它到达未颜色时,单元格它粘贴一个值并移动到下一行。
Sub executeCheckBoxes()
Dim src As Worksheet
Dim tgt As Worksheet
Dim chkbx As CheckBox
Dim i As Long
Set src = ThisWorkbook.Worksheets("Sheet1")
Set tgt = ThisWorkbook.Worksheets("Sheet2")
srcLR = src.Cells(src.Rows.Count, 1).End(xlUp).Row
tgtER = tgt.Cells(tgt.Rows.Count, 1).Row + 1
i = 4
j = 1
For Each chkbx In src.CheckBoxes
If chkbx.Value = xlOn Then
tgt.Cells(i, j).Value = _
src.Cells(chkbx.TopLeftCell.Row, 1).Value
tgt.Activate
If tgt.Cells(i, j).Interior.ColorIndex <> 0 Then
'tgt.Cells(i, j).Select
Debug.Print chkbx.Name
j = j + 1
Else
i = i + 1
j = 1
End If
End If
Next chkbx
End Sub
我有 1 到 278 个数字以及“表格 1”中的各个复选框。但我希望它们从左到右复制,并且它也应该根据所选单元格值排列在彩色单元格中。
任何帮助将非常感激。
Function Filled(MyCell As Range)
If MyCell.Interior.ColorIndex > 0 Then
Result = 1
Else
Result = ""
End If
Filled = Result
End Function
此代码取自此处的讨论。
使用此 function,您可以编写一个while
循环,该循环从单元格1,1
开始,然后水平执行,直到到达没有颜色的单元格。 然后它将 go 到下一行。 如果它转到下一行并且单元格没有颜色,那么您可以退出 while 循环并发送一条消息,上面写着“单元格用完”或类似的东西。
这假设彩色单元都是完全相同的颜色。 它还假设行中没有颜色中断(即一个连续的颜色块)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.