在一工作薄中分别有SHEET1与SHEET2,其中SHEET1是总表,SHEET2是分表,从SHEET2是分表中将数值引用到总表

总表A1列为名称B1、C1、D1.....是日期(整月的日期都有),分表A1列也是名称,但B1、C1、D1.....是日期中有可能有某天的日期是没有的,想从分表中使用VB... 总表A1列为名称B1、C1、D1.....是日期(整月的日期都有),分表A1列也是名称,但B1、C1、D1.....是日期中有可能有某天的日期是没有的,想从分表中使用VBA方法将B2、C2、D2.......把数值引用到总表中,应该怎么表示?谢谢! 展开
 我来答
真真真白丁
2015-01-15 · TA获得超过8524个赞
知道大有可为答主
回答量:4644
采纳率:85%
帮助的人:1764万
展开全部

亲,如果只有一张分表,公式就可以解决。

如下图,Sheet1的B2单元格粘贴这个公式。

=IFERROR(INDEX(Sheet2!$A:$D,MATCH(Sheet1!$A2,Sheet2!$A:$A,),MATCH(Sheet1!B$1,Sheet2!$1:$1,)),"")

右拉到F2,然后选中B2:F2,整体下拉公式。


如果你是Excel2003版,公式改为:

=IF(ISERROR(INDEX(Sheet2!$A:$D,MATCH(Sheet1!$A2,Sheet2!$A:$A,),MATCH(Sheet1!B$1,Sheet2!$1:$1,))),"",INDEX(Sheet2!$A:$D,MATCH(Sheet1!$A2,Sheet2!$A:$A,),MATCH(Sheet1!B$1,Sheet2!$1:$1,)))



更多追问追答
追问
因表格大太,如果使用函数的话,所占的内存更大,到时电脑很反应会很慢,所以我想使用VBA代码来表达,应该要怎么表达呢?
追答

可以,VBA的代码如下。

打开你的Excel文件,按“Alt+F11”打开VBA编辑窗口,然后在左侧对应的Sheet上双击,右侧空白处粘贴下面的代码。关闭VBA窗口。然后按“Alt+F8”打开宏窗口,选择刚插入的宏,点击“执行”。


Sub tc()
Dim i, j, r, c As Long
Dim fr, fc As Range
With Sheets("Sheet2")
    For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
        For j = 2 To .Cells(1, Columns.Count).End(xlToLeft).Column
            Set fr = UsedRange.Find(.Cells(i, "A").Value)
            Set fc = UsedRange.Find(.Cells(1, j).Value)
            If Not fr Is Nothing And Not fc Is Nothing Then
                Cells(fr.Row, fc.Column).Value = .Cells(i, j).Value
            End If
        Next
    Next
End With
End Sub
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式