我在execlA的vba代码里新建了一个execlB,将execlA的某个工作表的部分数据存放到新建的execlB(只有一张表)里,
然后要将execlB的工作表加上密码保护,发现怎么也没保护不了。主要代码如下:    Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类
    xlApp.SheetsInNewWorkbook = 1       '设置工作薄只有一个工作表
    Set xlBook = xlApp.Workbooks.Add    '新增工作薄
    xlBook.Worksheets(1).Name = "SN"  '工作表重新命名
    Set xlsheet = xlBook.Worksheets(1)    xlsheet.Columns(1).ColumnWidth = 100  '设置列宽
    ..........................
    execlA的单元格数据复制到execlB
    ..........................   xlsheet.Protect "123"
   xlBook.SaveAs Filename:=file, FileFormat:=xlCSV, _
        CreateBackup:=False   '设置存储格式为csv,保存。
  
   xlBook.Close (True) '关闭EXCEL工作簿
   xlApp.Quit '关闭EXCEL
   Set xlsheet = Nothing
   Set xlBook = Nothing
   Set xlApp = Nothing '释放EXCEL对象
问题就是打开新建的csv文件后,发现对列宽的设置和加密码保护并没有实现。这个问题怎么解决?

解决方案 »

  1.   

    有没有搞错呀,CSV文件那里还管你什么列宽和密码保护呀,这些信息不会保存的。要那样你就存成Excel自己的格式才行。
      

  2.   

    这段代码是对指定文件设置密码的:
    Workbooks.Open Filename:="C:\Documents and Settings\Administrator\桌面\新建 Microsoft Excel 工作表.xls"
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs ActiveWorkbook.FullName, _
            FileFormat:=xlNormal, Password:="1234", WriteResPassword:="", _
    Application.DisplayAlerts = True