将csv文件导入Excel并在Excel之外自动保护密码

时间:2016-10-09 00:24:32

标签: excel vba excel-vba

我想要一个csv(它将有2或11个条目):

"你好","那里","人们",......"第11件事"

"你好""还有"

谢谢 https://blogs.technet.microsoft.com/heyscriptingguy/2005/02/07/how-can-i-password-protect-an-excel-spreadsheet/我创建了一个受密码保护的Excel文件!

现在如何导入csv?

我尝试但未能将此帖子合并到我的脚本中:

Vbscript to import csv into excel

以下是我所拥有的:

vbFormatStandard = 1
Const vbFormatText     = 2
Const vbFormatDate     = 4

Const xlDelimited      = 1
Const xlDoubleQuote    = 1

' change according to number/type of the fields in your CSV
dataTypes = Array( Array(1, vbFormatText) _
  , Array(2, vbFormatStandard) _
  , Array(3, vbFormatText) _
  , Array(4, vbFormatDate) _
  )

Set xl = CreateObject("Excel.Application")
objExcel.DisplayAlerts = FALSE

xl.Visible = True
xl.Workbooks.OpenText "C:\Users\data.csv", , , xlDelimited, xlDoubleQuote, False _  , False, True, , , , dataTypes
Set wb = xl.ActiveWorkbook

Set objWorkbook = objExcel.Workbooks.Add
Set objWorksheet = objWorkbook.Worksheets(1)
objWorksheet.Cells(1, 1).Value = Now
objWorkbook.SaveAs "C:\Users\stuff.xls",,"pass"
objExcel.Quit

如何调用我的对象?我没有做头或尾,也不是开发人员,但有这项任务......

1 个答案:

答案 0 :(得分:0)

相反,这更简单:

Dim myXL
Const xlDelimited = 1
Const xlWorkbookNormal = -4143

Set myXL=CreateObject("Excel.Application")
myXL.Visible=False
myXL.DisplayAlerts=False
myXL.WorkBooks.OpenText "C:\data.xt", , , xlDelimited, , , , , True 
myXL.ActiveWorkbook.SaveAs "C:\data.xls", xlWorkbookNormal,"password"

myXL.ActiveWorkbook.Close False
myXL.Quit

Set myXL = Nothing

有关详细信息,请参阅https://msdn.microsoft.com/en-us/library/office/ff841185.aspx