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

Vba 用其他工作表中的数据填充特定列中的单元格,vba,excel,Vba,Excel,我正在使用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 =

我正在使用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
Private子工作表\u双击之前(ByVal目标作为范围,Cancel作为布尔值)
将ws2设置为工作表
模糊同源域
只要
Set cognome=Me.Range(“A:A”)
Set ws2=thiswoolk.Sheets(“PUBBLICO”)
ultB=IIf(ws2.Range(“E8”).Value=”“,8,ws2.Range(“E7”).End(xlDown)。行+1)
如果notintersect(Target,cognome)为Nothing和Target.Value“”,则
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
如果结束
设置ws2=无
取消=真
端接头
问题是该脚本应该针对其他用途进行优化。我有另一张Excel表格,在要填充的单元格范围内,包含一个始终预先填充的单元格,并将其合并

这是我的Excel文件的示例:

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

那么,有什么建议可以更正我的脚本以跳转第19行吗?

请考虑

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
ultB=IIf(ws2.Range(“E8”).Value=”“,8,ws2.Range(“E27”).End(xlUp)。行+1)
如果ultB=19,则ultB=20
如果ultB=27,则
MsgBox“表单已满”
出口接头
如果结束
如果notintersect(Target,cognome)为Nothing和Target.Value“”,则

这将自下而上而不是自上而下查找最后填充的单元格。它还包含一些在表单已满时通知的代码

你描述的第16行是什么?第19排还是第27排?你为什么要跳到那排?不清楚您想要实现什么。对不起,我指的是第19排。再次抱歉,我不想跳转到第19行,但在从E-F8到E-F26的范围内跳过第19行。在这种情况下,当我到达第19行时,脚本将正确转到第20行,但之后,它不会继续到第21-22-23行等。但它仍保留在第20行。