一段在xlsm文件保存时自动另存slk到特定目录的excel vba代码,适用于使用slk改物编的作者

皇家骑士 发表于 2018-8-14 05:52:15 | 显示全部楼层
学习者。
本帖最后由 皇家骑士 于 2018-8-14 06:20 编辑

请根据自己的需要修改。

' https://stackoverflow.com/questions/18899824/how-to-use-vba-saveas-without-closing-calling-workbook
' https://stackoverflow.com/questions/3233203/how-do-i-use-filesystemobject-in-vba

Private Sub Workbook_AfterSave(ByVal Success As Boolean)

    Dim thisWb As Workbook, wbTemp As Workbook, saveAsName As String
    Dim ws As Worksheet
    Dim fso As New Scripting.FileSystemObject

    On Error GoTo Whoa

    Application.DisplayAlerts = False

    Set thisWb = ThisWorkbook
    Set wbTemp = Workbooks.Add
    saveAsName = fso.GetBaseName(thisWb.Name)

    On Error Resume Next
    For Each ws In wbTemp.Worksheets
        ws.Delete
    Next
    On Error GoTo 0

    For Each ws In thisWb.Sheets
        ws.Copy After:=wbTemp.Sheets(1)
    Next

    wbTemp.Sheets(1).Delete
    wbTemp.SaveAs "..\..\Release\Units\" & saveAsName & ".slk", 2
    wbTemp.Close (True)

LetsContinue:
    Application.DisplayAlerts = True
    Exit Sub
Whoa:
    MsgBox Err.Description
    Resume LetsContinue
   

End Sub

使用道具 举报

我是卢晓奇 发表于 2018-8-17 23:08:01 | 显示全部楼层
slk没了解,看起来挺方便的,不过我最近改物编用的是YDWE的w3xlni,也十分方便,可以转换为文本和文件夹,导入文件真的是方便太多了
支持 反对

使用道具 举报

 楼主| 皇家骑士 发表于 2018-8-18 03:07:41 | 显示全部楼层
学习者。
我是卢晓奇 发表于 2018-8-17 23:08
slk没了解,看起来挺方便的,不过我最近改物编用的是YDWE的w3xlni,也十分方便,可以转换为文本和文件夹, ...

后来我还是直接写了一个xlsx转slk(blz格式)的转表器。
好处是改表批量很适合做数值和大规模调整。

不过我是直接改的源表,地图内的表只会显示被修改的格子的值,在做数据维护上反而不太方面。

我对怎么扩充原本的物编数量感兴趣,因为“对战”“战役”两个分栏,里面的单位一旦复制就跑到自定义去了。同样也希望能增加种族栏,那样在管理单位上能方便得多。

支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

相关版块

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