VB找到需要Excel文件,复制到需要的Excel文件的sheet中用于计算。

Sub 计算()
'
' 计算 宏
'
'关闭屏幕更新和计算
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

'寻找今日销售业绩数据
sales = Dir("D:\众结资料\1日常工作内容\每日销售开发业绩(Python)\" & Application.WorksheetFunction.Text(Date, "yyyymmdd") & "\销售业绩本月.csv")
If sales = "" Then
    MsgBox "未找到今天的销售业绩数据"
    Exit Sub
    Else
End If


'寻找上月销售业绩数据
saleslast = Dir("D:\众结资料\1日常工作内容\每日销售开发业绩(Python)\" & Application.WorksheetFunction.Text(Date, "yyyymmdd") & "\销售业绩上月.csv")
If saleslast = "" Then
    MsgBox "未找到上月的销售业绩数据"
    Exit Sub
    Else
End If


'确定销售页有多少条数据
HROW1 = Sheets("销售业绩").[B2].CurrentRegion.Rows.Count
HROW2 = Sheets("销售业绩").[N2].CurrentRegion.Rows.Count
HROW3 = Sheets("各仓库销售业绩").[C2].CurrentRegion.Rows.Count
HROW4 = Sheets("开发业绩").[C2].CurrentRegion.Rows.Count
HROW5 = Sheets("开发业绩").[O2].CurrentRegion.Rows.Count
HROW6 = Sheets("店铺业绩").[A2].CurrentRegion.Rows.Count
HROW7 = Sheets("站点数据").[A2].CurrentRegion.Rows.Count
HROW8 = Sheets("店铺业绩ebay").[A2].CurrentRegion.Rows.Count
'删除销售数据
Sheets("销售业绩").Range("A2:I" & HROW1).Clear
Sheets("销售业绩").Range("M2:O" & HROW2).Clear
Sheets("各仓库销售业绩").Range("A2:D" & HROW3).Clear
Sheets("开发业绩").Range("A2:D" & HROW4).Clear
Sheets("开发业绩").Range("M2:O" & HROW5).Clear
Sheets("店铺业绩").Range("A2:E" & HROW6).Clear
Sheets("站点数据").Range("A2:E" & HROW7).Clear
Sheets("店铺业绩ebay").Range("A2:F" & HROW8).Clear

'复制本期销售业绩
Set saleswb = Workbooks.Open("D:\众结资料\1日常工作内容\每日销售开发业绩(Python)\" & Application.WorksheetFunction.Text(Date, "yyyymmdd") & "\" & sales)
HROWsl = saleswb.Sheets("销售业绩本月").[B2].CurrentRegion.Rows.Count
saleswb.Sheets("销售业绩本月").Range("A2:I" & HROWsl).Copy ThisWorkbook.Worksheets("销售业绩").Range("A2")
saleswb.Close SaveChanges:=False

'复制上期销售业绩
Set saleslastwb = Workbooks.Open("D:\众结资料\1日常工作内容\每日销售开发业绩(Python)\" & Application.WorksheetFunction.Text(Date, "yyyymmdd") & "\" & saleslast)
HROWslast = saleslastwb.Sheets("销售业绩上月").[B2].CurrentRegion.Rows.Count
saleslastwb.Sheets("销售业绩上月").Range("A2:C" & HROWslast).Copy ThisWorkbook.Worksheets("销售业绩").Range("M2")
saleslastwb.Close SaveChanges:=False




'打开计算
Application.Calculation = xlCalculationAutomatic
'关闭计算
Application.Calculation = xlCalculationManual

Call 业绩计算


'
End Sub

Option Explicit Private Sub CommandButton1_Click() Dim ar, br(), i&, j&, k&, m&, myFile$, myPath$, myStr$, Rng As Range, Wb, Ws, tms# Application.ScreenUpdating = False On Error Resume Next If Range("n3") = "" Then MsgBox "N列没有要查询的内容": Exit Sub m = Range("n2").End(4).Row - 1 ar = Range("n2").Resize(m) ReDim br(65530, 5) With Application.FileDialog(msoFileDialogFolderPicker) If .Show Then myPath = .SelectedItems(1) Else myPath = ThisWorkbook.Path End With If Right(myPath, 1) <> "\" Then myPath = myPath & "\" tms = Timer myFile = Dir(myPath & "*.xls*") Do While myFile <> "" If myFile <> ThisWorkbook.Name Then br(k, 1) = Left(myFile, InStrRev(myFile, ".") - 1) Set Wb = GetObject(ThisWorkbook.Path & "\" & myFile) With Wb '利用GetObject在后台打开工作簿 For Each Ws In .Worksheets '循环当前工作簿每个工作表 br(k, 2) = Ws.Name With Ws For i = 2 To m myStr = ar(i, 1) If WorksheetFunction.CountIf(.UsedRange, "*" & myStr & "*") <> 0 Then Set Rng = .UsedRange.Find(myStr) Do br(k, 3) = Rng.Address(0, 0) br(k, 4) = Rng.Text br(k, 5) = myStr br(k, 0) = k + 1 k = k + 1 br(k, 1) = br(k - 1, 1) br(k, 2) = br(k - 1, 2) Set Rng = .UsedRange.Find(myStr, Rng) Loop While .UsedRange.Find(myStr).Address <> Rng.Address End If Next End With Next Ws .Close False '不保存关闭工作簿 End With End If myFile = Dir Loop Set Wb = Nothing Range("a1").CurrentRegion.Offset(2) = "" myStr = "很遗憾、不存在你要搜索的内容。" If k Then Range("a3").Resize(k, 6) = br Range("a3").Resize(k, 6).Borders.LineStyle = 1 以下还有内容……见附件!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值