excel一个工作表输入数据另一工作表对应的位置显示

来源:百度知道 编辑:UC知道 时间:2024/05/17 00:54:06
excel一个工作表输入数据另一工作表对应的位置自动显示,用vb,公司做生产报表用的,前面只要输入一个批号,令一工作表要显示此批号,而且,当输入另一批号时,要空下20行,显示另一批号。因为有二十个工位!。。只有二十分,以后会加分感谢

'1.右击Sheet1页名称,选择查看代码。
'2.把以下代码复制到代码区。
'3.在Sheet1的A1单元格输入批号(若须在其它地方输入,请修改第3行)。
'4.即可在Sheet2的A列显示该批号,并每批号预留20行。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = [a1].Address Then
With Sheet2
r_end = .Range("a65535").End(xlUp).Row
r = Int(r_end / 21) * 21 + 1
If .Cells(r, 1) = "" Then
.Cells(r, 1) = Target
Else
.Cells(r + 21, 1) = Target
End If
End With
End If
End Sub

用函数公式不行吗?
“一个工作表”是Sheet1,“另一工作表”是Sheet2,数据都在A列显示吧:
在Sheet2的A1输入=IF(Sheet1!A1="","",Sheet1!A1)回车;
在Sheet2的A2输入=IF(OR(MOD(ROW(),22)>0,INDIRECT("Sheet1!A"&ROW(A4)+INT(ROW()/23)-ROW())=""),"",INDIRECT("Sheet1!A"&ROW(A4)+INT(ROW()/23)-ROW()))回车并向下填充。
这样,在Sheet1中的A列(A1开始)输入批号,Sheet2的A列就返回对应的批号,并从Sheet2中的A2起“空下20行”。