求个excel的VBA代码

我想实现:在sheet1表中点击一个控件按钮,则弹出窗体选择导入excel文件,确定后导入的excel文件会替换sheet2表的内容,但不替换sheet2表的表头(第一二行)。然后提示,导入成功。

导入只是表面现象,实质上是把选择的EXCEL文件中的一个工作表(需要事先指定)的符合条件的内容复制到 Sheet2 的第三行开始的位置。
这个功能可以实现。Hi我吧。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-08-01
这个简单,如果需要Hi我.邮箱:[email protected]
第2个回答  2010-08-01
Private Sub CommandButton1_Click()
CommonDialog1.Filename = ""
CommonDialog1.ShowOpen
If CommonDialog1.Filename = "" Then Exit Sub
Dim NewBook As Workbook, OldBook As Workbook
Dim SrcSheet As Worksheet, DstSheet As Worksheet
Dim Rg As Range
Set OldBook = ActiveWorkbook
Set DstSheet = OldBook.Worksheets(2)
Set NewBook = Workbooks.Open(CommonDialog1.Filename)
Set SrcSheet = ActiveSheet
Set Rg = SrcSheet.Range(SrcSheet.Cells(3, 1), SrcSheet.Cells(SrcSheet.[A65536].End(xlUp).Row, SrcSheet.[IV1].End(xlToLeft).Column))
Rg.Copy DstSheet.Cells(3, 1)
End Sub
'添加一个按钮和一个commondialog控件即可
第3个回答  2010-08-02

在EXCEL中好像不支持CommonDialog1.ShowOpen(打开对话框)而应用:

NewBookName=Application.GetOpenFilename("Excel文件(*.xls & .xla),*.xls;*.xla", , "导入"),所以我将楼上的代码更改如下。

1、在EXCEL中增加一个CommandButton1按钮,双击该按钮,将以下代码复制过去就可以了。

2、代码如下:

Private Sub CommandButton1_Click()

    Dim NewBook As Workbook, OldBook As Workbook

    Dim SrcSheet As Worksheet, DstSheet As Worksheet

    Dim Rg As Range

  NewBookName=Application.GetOpenFilename("Excel文件(*.xls & .xla),*.xls;*.xla", , "导入")

    If NewBookName= "" Then Exit Sub

    Set OldBook = ActiveWorkbook

    Set DstSheet = OldBook.Worksheets(2)

    Set NewBook = Workbooks.Open(NewBookName)

    Set SrcSheet = ActiveSheet

    Set Rg = SrcSheet.Range(SrcSheet.Cells(3, 1), SrcSheet.Cells(SrcSheet.[A65536].End(xlUp).Row, SrcSheet.usedrange.columns.count))

    Rg.Copy DstSheet.Cells(3, 1)

End Sub