1:
Dim UserList(5)
UserList(0)="A"
UserList(1)="B"
UserList(2)="C"
UserList(3)="D"
UserList(5)="E"
strTargetUser="B"
msgbox MyFunction(UserList,strTargetUser)
Function MyFunction(Str1,Str2)
Dim blo
blo = False
For i=0 To UBound(Str1)
If Str2 = Str1(i) Then
MyFunction = i
blo = true
Exit FUNCTION
End If
Next
If Not blo Then
MyFunction = -1
End If
End Function
Dim xlApp,xlWorkBook,xlSheet
Dim iRowCount,iLoop,numAdd
'创建EXCEL对象
Set xlApp= CreateObject("Excel.Application")
'可见
xlApp.Visible= True
'不显示提示信息,这样保存的时候就不会提示是否要覆盖原文件
xlApp.DisplayAlerts=FALSE
'创建Workbooks对象
Set xlWorkBook= xlApp.Workbooks.Open("d:\gh.xls")
'创建Sheets对象
Set xlSheet= xlWorkBook.Sheets("Sheet1")
'激活sheet
xlSheet.Activate
'UsedRange属性应用于Worksheet对象,返回指定工作表中已使用区域的Range对象,即返回工作表中已使用的单元格区域。
'xlSheet.usedRange.Rows.Count 返回有效数据行数
'iRowCount= xlSheet.usedRange.Rows.Count
For iLoop= 1 To 10
'xlSheet.Cells(行,列) 返回单元格内容
xlSheet.Cells(iLoop,1) = iLoop
MsgBox iLoop
Next
'保存Workbooks
xlWorkBook.Save
'关闭Workbooks
xlWorkBook.Close
'退出EXCEL
xlApp.Quit
'释放所有对象
Set xlSheet= Nothing
Set xlWorkBook= Nothing
Set xlApp= Nothing
paths = "D:\SVN_Work\MyERP\o9_scm\Config_finance_831\Module\SCM\Bill\Bill_AssetCard.xml"
ControlKey = "biaotouwenben"
call ReadPanelKey(paths,ControlKey)
Function ReadPanelKey(paths,ControlKey)
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
'这里去读一个xml文件,程序走到xmlDoc.load(url);若数据为加载完,则下一句就会报错,导致不能读出xml文件,若加上xmlDoc.async = false;将程序设置为同步加载,此时相当于挂起等待,客户机就要等到服务器返回消息后才去执行其他操作;而设置为true为异步就相当于后台执行,异步的好处是可以立即返回,继续做其它的事。
xmlDoc.async = False
xmlDoc.load(Paths)
'readpanelkeys 分别记录是key,panelkeys,controltype,DBColumnName,DBLocation 新增ReadPanelKeys(8):BillMetaTable的Key 判断查询界面 、新增
Dim ReadPanelKeys(9),CapTF,ControlTF
ReadPanelKeys(8) = xmlDoc.getElementsByTagName("BillMetaTable")(0).attributes.getNamedItem("Key").nodeValue
If Right(LCase(ReadPanelKeys(8)),4) = "cond" Then
ReadPanelKeys(9) = xmlDoc.getElementsByTagName("BillMetaTable")(0).attributes.getNamedItem("ID").nodeValue
else
ReadPanelKeys(9) = ""
End If
For i = 0 to xmlDoc.getElementsByTagName("BillMetaField").Length-1
On Error Resume Next
CapTF = xmlDoc.getElementsByTagName("BillMetaField")(i).attributes.getNamedItem("Key").nodeValue
If CapTF = ControlKey Then
ReadPanelKeys(0) = ControlKey
ReadPanelKeys(1) = xmlDoc.getElementsByTagName("BillMetaField")(i).childNodes(0).childNodes(0).attributes.getNamedItem("PanelKey").nodeValue
ReadPanelKeys(2) = xmlDoc.getElementsByTagName("BillMetaField")(i).attributes.getNamedItem("ControlType").nodeValue
ReadPanelKeys(3) = xmlDoc.getElementsByTagName("BillMetaField")(i).attributes.getNamedItem("DBColumnName").nodeValue
ReadPanelKeys(4) = xmlDoc.getElementsByTagName("BillMetaField")(i).attributes.getNamedItem("DBLocation").nodeValue
ReadPanelKeys(7) = xmlDoc.getElementsByTagName("BillMetaField")(i).attributes.getNamedItem("Caption").nodeValue
If ReadPanelKeys(2)="DICTIONARY" Then
ReadPanelKeys(6) = xmlDoc.getElementsByTagName("BillMetaField")(i).attributes.getNamedItem("ItemKey").nodeValue
ReadPanelKeys(6) = ReadPanelKeys(6)&xmlDoc.getElementsByTagName("BillMetaField")(i).attributes.getNamedItem("FieldType").nodeValue
Elseif ReadPanelKeys(2)="COMBOBOX" Then
ReadPanelKeys(6) = xmlDoc.getElementsByTagName("BillMetaField")(i).childNodes(0).attributes.getNamedItem("Caption").nodeValue&"|"& xmlDoc.getElementsByTagName("BillMetaField")(i).childNodes(0).attributes.getNamedItem("Value").nodeValue
Elseif ReadPanelKeys(2)="CheckListBox" Then
ReadPanelKeys(6) = xmlDoc.getElementsByTagName("BillMetaField")(i).childNodes(0).attributes.getNamedItem("Caption").nodeValue&"|"& xmlDoc.getElementsByTagName("BillMetaField")(i).childNodes(0).attributes.getNamedItem("Value").nodeValue
ElseIf ReadPanelKeys(2)="CHECKBOX" Then
RadioGroupKey = xmlDoc.getElementsByTagName("BillMetaField")(i).childNodes(0).attributes.getNamedItem("RadioGroupKey").nodeValue
ReadPanelKeys(5) = RadioGroupKey
ElseIf UCase(ReadPanelKeys(2))="DATATIME" Then
ReadPanelKeys(6) = ReadPanelKeys(2)
End If
End If
Next
ReadPanelKey = ReadPanelKeys
MsgBox Join(ReadPanelKeys,",")
Set xmlDoc = Nothing
End Function