Ⅰ 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