77家的会客2010

Tag: EXCEL | 记录数: 10
Lotus Notes C/S模式下导出当前VIEW的数据到EXCEL

 

 

前提:机器上当然要状有EXCEL了

将下面的代码直接放到VIEW的一个ACTION按钮上就行了

这个还包含了前一篇的进度条的功能

VBProject:代码操作代码之常用语句 (转)

 

 

一、增加模块 
1.增加一个模块,命名为“我的模块”  
  ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule).Name = "我的模块" 
  系统常量vbext_ct_StdModule=1 
2.增加一个类模块,命名为“我的类”  
  ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_ClassModule).Name = "我的类"  
  vbext_ct_ClassModule=2  
3.增加一个窗体,命名为“我的窗体” 
  ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm).Name = "我的窗体" 
  vbext_ct_MSForm=3  
二、删除模块  。。。
Excel中VBA使用的一些总结

 

最近用VBA写了不少工作 上用的工具,一些常用或是容易出错的拿出来分享一下

1、检查一个XLS里是否存在指定SHEET页

Function SheetExists(ByVal wb As Workbook, ByVal SheetName As String) As Boolean
' returns TRUE if the sheet exists in the active workbook
    SheetExists = False
    On Error GoTo NoSuchSheet
    If Len(wb.Sheets(SheetName).Name) > 0 Then
        SheetExists = True
        Exit Function
    End If
NoSuchSheet:
    SheetExists = False
End Function
 
Python 处理 Excel
Weather:12~20度,多云

 使用Python对Excel进行操作,然后把结果生成一个新的Excel表格,使用到了xlrdpyExcelerator两个库。

 

简单的介绍一下这两个库,先说xlrd,这个库读Excel比较方便,各种方法使用起来也挺方便:

bk = xlrd.open_workbook('your.xls')
sh = bk.sheets()[-1]
上面两句就可以打开Excel表格中的一个sheet,sheets得到的是一个list,存放所有的sheet。
sh.nrows是该sheet中的行数,知道这个后就可以使用for循环来读所有的单元格了:
sh.row(i)[3]这个就代表第i行的第4列。

再看看pyExcelerator,这个用起来有点别扭:

sheets = parse_xls('result.xls')
先打开一个表格,sheets是一个list,包含了所有表格的内容,每一项就是一个sheet,而每个sheet是二元tuple,第一个是该sheet的名字,第二个是一个dict,dict的key是一个二元组,表示单元格的坐标,如(0,0),第一行第一列。
从上面的分析中可以得出要访问Excel中第一个sheet的第一行第一列元素需要:
sheets[0][1][(0,0)]
pyExcelerator也不能得到行列数。

写文件也比较简单:
wb = Workbook()
ws = wb.add_sheet('result')
ws.write(0,0,“hello”)
wb.save('result.xls')
 

写文件时需要注意直接写Unicode内容进去,而不要写编码过的内容。

转载于:可可熊的窝

用VBA实现EXCEL单元格输入即保护功能
Weather:春天来了,百花还未花

由于Tracy要求财务上用的EXCEL表要实现的功能:当前SHEET页上的某些单元格或行或列,录入数据的人,只有录入一次,录入完则立即保护起来,如果想修改,只能有密码的人才能修改。

从这可以衍生出更具体的要求:

  1. 输入一次即保护起来,想再修改必须输入密码(即原始要求)
  2. 未输入的空白区(保护作用区,即将会被保护的)可以随便操作
  3. 输入密码后,只能修改当前选中的单元格,不能随意修改其它被保护的单元格
  4. 要修改被保护的单元格,弹出输入密码框
  5. 输入密码验证后,拉选(多选)单元格区域,被保护的还是不能被删除
  6. 被保护起来的单元格要特殊显示
  7. 保护状态下,拉选(多选)时不会触发密码提示框