首页 文章

使用其他工作表中的数据填充特定列中的单元格

提问于
浏览
0

我正在使用VBA脚本用一些数据填充列 .

此脚本检查范围中的第一个空闲单元格,并使用另一个Excel工作表中的数据填充它 .

当用户双击另一个工作表中的数据单元格时,脚本将启动 .

VBA脚本的代码是:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim ws2 As Worksheet
Dim cognome As Range
Dim ultB As Long

Set cognome = Me.Range("A:A")
Set ws2 = ThisWorkbook.Sheets("PUBBLICO")
ultB = IIf(ws2.Range("E8").Value = "", 8, ws2.Range("E7").End(xlDown).Row + 1)

If Not Intersect(Target, cognome) Is Nothing And Target.Value <> "" Then
    ws2.Range("E" & ultB).Value = Me.Range("B" & Target.Row).Value 'ANNO
    ws2.Range("F" & ultB).Value = Me.Range("A" & Target.Row).Value 'COGNOME
    'ws2.Range("E4").Value = Me.Range("C" & Target.Row).Value NOME SQUADRA
End If
Set ws2 = Nothing
Cancel = True
End Sub

问题是该脚本应该针对其他用途进行优化 . 我有另一个Excel表格,它在要填充的单元格范围内包含一个总是预先填充并且合并的单元格 .

这是我的Excel文件的示例:

enter image description here

如您所见,第19行始终是预先填充的 .

所以,任何建议纠正我的脚本跳第19行?

1 回答

  • 1

    考虑

    ultB = IIf(ws2.Range("E8").Value = "", 8, ws2.Range("E27").End(xlUp).Row + 1)
    If ultB = 19 Then ultB = 20
    If ultB = 27 Then
        MsgBox "Form is full"
        Exit Sub
    End If
    
    If Not Intersect(Target, cognome) Is Nothing And Target.Value <> "" Then
    

    这将从下往上而不是从上到下找到最后填充的单元格 . 它还包含一些代码,以便在表单填满时通知 .

相关问题