ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2860|回复: 16

[求助] [工作薄关闭问题]请高手帮我看下,错在什么地方?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-1-4 19:45 | 显示全部楼层 |阅读模式
Dim wb As Workbook
    Dim myFileName As String, myPath As String, lr As Long, m As Long
     m = 1
    myPath = ThisWorkbook.Path & "\"
    myFileName ="2009考勤表.xls"
        If myFileName <> ThisWorkbook.Name Then
            Set wb = GetObject(myPath & myFileName)

            With wb.Sheets(ac)
               row2 = .Range("a65536").End(xlUp).Row
               
              '从考勤表中复制数据
             La = 3
             For lw = 5 To row2
                 Cells(La, 3) = Workbooks(wk).Sheets(ac).Cells(lw, 3)
               La = La + 1
            Next
                 End With
            wb.Close
        End If

      wb.Close 关闭 2009考勤表.xls 怎么关不掉? 请高人指点

[ 本帖最后由 wuxingch 于 2009-1-5 12:08 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-1-4 20:16 | 显示全部楼层
麻烦给位了,平时研究比较少,谢谢大家帮忙啊。我等着

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-1-4 21:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Workbooks("*.xls").Close

TA的精华主题

TA的得分主题

发表于 2009-1-4 22:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请参考:
Sub aaa()
    Dim wb As Workbook
    Dim myFileName As String, myPath As String, lr As Long, m As Long
    myPath = ThisWorkbook.Path & "\"
    myFileName = "2009考勤表.xls"
    Application.ScreenUpdating = False
    Set wb = GetObject(myPath & myFileName)
    With wb.Sheets("ac")
        row2 = .Range("a65536").End(xlUp).Row
        '从考勤表中复制数据
        La = 3
        For lw = 5 To row2
            Cells(La, 3) = .Cells(lw, 3)
            La = La + 1
        Next
    End With
    wb.Close False
    Application.ScreenUpdating = True
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-1-5 07:16 | 显示全部楼层
谢谢楼上的,但是还是关不掉、
    wb.Close False 没起作用?

TA的精华主题

TA的得分主题

发表于 2009-1-5 11:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
workbook.close

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-1-5 11:35 | 显示全部楼层
错误,还是不行

[ 本帖最后由 wuxingch 于 2009-1-5 11:36 编辑 ]
未命名.JPG

TA的精华主题

TA的得分主题

发表于 2009-1-5 11:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

回复 5楼 wuxingch 的帖子

我这里可以关闭,请看附件:
wuxingch.rar (11.46 KB, 下载次数: 80)

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-1-5 12:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请楼上的,帮我看下,程序到底错在哪里,运行你的程序可以了?但用在我的程序里还是不行?
程序如下:
Sub 计算工资Aa()

On Error Resume Next
Dim wk As String, ac As String
Dim la As Long

Application.EnableEvents = False
Application.ScreenUpdating = False

wk = "2009考勤表.xls"
If ActiveWorkbook.Name <> "2009工资报表.xls" Then Exit Sub

aa = ActiveSheet.Name '取当前工作表名
ab = RightB(aa, 4)     '工资  补贴
ac = Left(aa, Application.WorksheetFunction.Find("份", aa))  '取几月份

'清除原始记录
Row = ActiveSheet.UsedRange.Rows.Count
If Row > 2 Then Rows("3:" & Row).Delete

    Dim wb As Workbook
    Dim myFileName As String, myPath As String
    myPath = ThisWorkbook.Path & "\"
    myFileName = wk
       If myFileName <> ThisWorkbook.Name Then
            Set wb = GetObject(myPath & myFileName)


            With wb.Sheets(ac)
              
               row2 = .Range("a65536").End(xlUp).Row '求2009考勤表中"ac"月份最后一行

               
              '从考勤表中复制数据

             la = 3
             For lw = 5 To row2
                 Cells(la, 3) = Workbooks(wk).Sheets(ac).Cells(lw, 3)
                 Cells(la, 4) = Workbooks(wk).Sheets(ac).Cells(lw, 35)
                 Range("A" & la) = "=row()-2"                                                    '行号
                 Range("E" & la) = "=INDEX(定额单价!D:D,MATCH(C" & la & ",定额单价!C:C,0))"   '引入单价公式
                 Range("H" & la) = "=INDEX(定额单价!G:G,MATCH(C" & la & ",定额单价!C:C,0))"   '引入带班长公式
                 lb = Application.WorksheetFunction.CountIf(Workbooks(wk).Sheets(ac).Range("D" & lw & ":AH" & lw), "工伤")
                 If lb > 0 Then Range("J" & la) = "工伤" & lb & "天,按20元/天"
                 Range("K" & la) = lb
                 Range("I" & la) = "=ROUND((E" & la & "*D" & la & "+G" & la & "-F" & la & "+H" & la & "+K" & la & "*20),)"
                 la = la + 1
            Next
            
               End With
            wb.Close False
            
          End If
            

row1 = Range("C65536").End(xlUp).Row '求最后一行号

row1 = Range("C65536").End(xlUp).Row '求最后一行号

'单元格合并
Range("A" & row1 + 1 & ":D" & row1 + 1).Merge
Range("E" & row1 + 1 & ":H" & row1 + 1).Merge

Range("A" & row1 + 1) = "合 计:"
Range("E" & row1 + 1) = "=DaXie(" & "I" & row1 + 1 & ")"
Range("I" & row1 + 1) = "=sum(I3:I" & row1 & ")"


'本示例将第一行移到窗口的最上面?

Workbooks("2009工资报表.xls").Sheets(aa).Activate
ActiveWindow.ScrollRow = 1

wx:
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

[ 本帖最后由 wuxingch 于 2009-1-5 12:04 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-1-6 11:14 | 显示全部楼层
自己顶下,请zhaogang1960 帮忙看下
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-5 02:57 , Processed in 0.062871 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表