繁体   English   中英

根据 1 个单元格值选择单元格范围

[英]Select range of cells based on 1 cell value

我试图找出一个 VBA 来根据单元格中的值选择同一行中的单元格范围。 示例:假设 A1 单元格的单元格值为“5”,然后它将选择 5 个相邻的单元格(B1:F1)并对这 5 个单元格输入“确定”然后 VBA 将继续检查病房中的 A2 的值 n 执行与上面相同,但如果在 A 列中找到第一个空白单元格,则 VBA 停止

下面将检查 A 列上的最后一行数据,然后检查每一行以验证 A 列中保存的值是否为数字,然后它将跨列循环多次,用“OK”填充单元格:

Sub ColumnALoop()
Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("Sheet1")
'declare and set the worksheet you are working with, amend as required
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
'get the last row with data on Column A
For i = 1 To LastRow
'loop through Rows
    If IsNumeric(ws.Cells(i, 1).Value) Then ws.Range("B" & i).Resize(, ws.Cells(i, 1).Value).Value = "OK"
    'verify the value in Column A is numeric then enter OK in relevant cells
Next i
End Sub

包括 Worksheet_Change 事件:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
'check if any changes have happened on Column A
    For Each c In Target
        If c.Column = 1 Then
        'ensure that we are looking at Column A as Target could include variable size ranges
            If IsNumeric(c) And c.Value <> "" Then Range("B" & c.Row).Resize(, c.Value).Value = "OK"
            'if value is numeric and not blank then enter "OK"
        End If
    Next c
End If
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM