Ⅰ vba thisworkbook.path 上一级目录 怎么表示
thisworkbook.path的上级目录是:
left(thisworkbook.path,instrrev(thisworkbook.path,"\")-1)
Ⅱ VBA 自动找寻上级
假设数据在A列,A1:A20
B1输入公式 =SUM(IF(ISNUMBER(FIND(A1:A20,A1))=TRUE,1,0)),在编辑状态下,按Ctrl+Shift+Enter三键计算数组。
向下拖动公式,注意FIND(A1:A20,A1 )中A1:A20要保持不变,变化的是A1。
结果等于1的就“无上级”。
Ⅲ CATIA VBA编程如何实体原地复制
楼上的方法可以使用,也比较简单方便.但有一点缺点,如果引用数据是动态的或有重复值.就达不到理想效果.下面的方法能解决这个问题:
如果是窗体控件:
Private Sub UserForm_Initialize() '用户窗体初始化
On Error Resume Next '如果发生错误执行下一语句
'声明数据类型
Dim Col As New Collection
Dim rng As Range, Arr
Dim i As Long
'在工作表"Sheet1"遍历"A"列数据引用区域
For Each rng In Sheet1.Range("a1:a" & Sheet1.[a65536].End(3).Row)
'如果引用的单元格值不等于空
If Trim(rng) <> "" Then
'用Add方法在变量Col添加一个成员并去除重复值
Col.Add rng, key:=CStr(rng)
End If
Next
'重置数组Arr的大小
ReDim Arr(1 To Col.Count)
'遍历变量Col
For i = 1 To Col.Count
Arr(i) = Col(i) '将变量Col中的数据赋给数组
Next
Me.ComboBox1.List = Arr '将数组Arr复制到复合框中
Me.TextBox1.Value = Join(Arr, ",") '用Join函数将一维数组Arr写入文本框
End Sub
如果是工作表控件:
Private Sub Workbook_Open() '工作薄打开时
On Error Resume Next '如果发生错误执行下一语句
'声明数据类型
Dim Col As New Collection
Dim rng As Range, Arr
Dim i As Long
'在工作表"Sheet1"遍历"A"列数据引用区域
For Each rng In Sheet1.Range("a1:a" & Sheet1.[a65536].End(3).Row)
'如果引用的单元格值不等于空
If Trim(rng) <> "" Then
'用Add方法在变量Col添加一个成员并去除重复值
Col.Add rng, key:=CStr(rng)
End If
Next
'重置数组Arr的大小
ReDim Arr(1 To Col.Count)
'遍历变量Col
For i = 1 To Col.Count
Arr(i) = Col(i) '将变量Col中的数据赋给数组
Next
With Sheet1 '对工作表Sheet1的操作
.ComboBox1.List = Arr '将数组Arr复制到复合框中
.TextBox1.Value = Join(Arr, ",") '用Join函数将一维数组Arr写入文本框
End With
End Sub