当前位置: 代码迷 >> Office >> EXCEL中是否函数能解决此有关问题,还是一定要用VBA
  详细解决方案

EXCEL中是否函数能解决此有关问题,还是一定要用VBA

热度:8478   发布时间:2013-02-26 00:00:00.0
EXCEL中是否函数能解决此问题,还是一定要用VBA?
SHEET1表中A字段输入后,如何实现SHEET2表中的A字段,让其在SHEET1中输入的每行数据在SHEET2中自动产生三行,如下表:



SHEET1中有: (输入主表)

  号码(A栏位) 栏位2(B栏位) 栏位3(C栏位)

  14000
  15000
  16000
  ........

SHEET2中有:(次表中)
  号码(A栏位) 栏位2(B栏位) 栏位3(C栏位)

  14000  
  14000
  14000
  15000
  15000
  15000
  16000
  16000
  16000
  ........

问题1:,SHEET2中A栏位从SHEET1中获取,重要的时如何实现从SHEET1中获取的每个单元格数据,在SHEET2中需生成同样号码三行数据,并以此类推...),要如何做?

问题2:实现问题1以后,如果要实现一按扭其功能是:假如删除SHEET1中的某行数据(如号码为14000行数据)时,SHEET2中对应的三号数据也删除(删除后不得留空行),这个恐怕是要用VBA实现了,如何做?

问题1如果不用VBA,用函数应该能实现吧..,问题2如果用VBA实现该如何写呢?.劳烦了.


------解决方案--------------------------------------------------------
第一个问题就如1楼用indirect或offset函数就可以了

第二个问题,只要你开了工作簿自动更新,sheet1删除数据后,sheet2会自动更改的,无须VBA
------解决方案--------------------------------------------------------
后面的栏位用VLOOKUP函数啊
------解决方案--------------------------------------------------------
我估计你是下面这个要求把: 

在sheet1里头放一个按钮, 关联下面 这个代码, 选择sheet1的一行 , 点击这个按钮就好了

sheet2的A列, 要根据A1=INDIRECT("sheet1!A" & INT((ROW()+2)/3)) 先下拉填充


Sub del3()

str1 = ActiveCell.Text
r = ActiveCell.Row
r = r & ":" & r


Sheets("Sheet2").Select
Columns("A:A").Select
Selection.Find(What:=str1, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, MatchByte:=False, SearchFormat:=False).Activate

r2 = ActiveCell.Row
r2 = r2 & ":" & (r2 + 2)
Rows(r2).Select
Selection.Delete Shift:=xlUp


Sheets("Sheet1").Select
Rows(r).Select
Selection.Delete Shift:=xlUp



End Sub
  相关解决方案