Board logo

標題: [發問] Excel VBA 請益 [打印本頁]

作者: zz0660    時間: 2021-7-21 00:17     標題: Excel VBA 請益

本帖最後由 zz0660 於 2021-7-21 00:19 編輯

[attach]33707[/attach]
請問 寫EXCEL的VBA 如何判斷 AA表單的C1儲存格內容的英文字,來決定QQ表單對應的地方複製,然後貼在AA表單 C2的位置?
請各位協助,謝謝!
作者: samwang    時間: 2021-7-21 08:13

本帖最後由 samwang 於 2021-7-21 08:17 編輯

回復 1# zz0660

請測試看看,謝謝

Sub test()
Dim Arr, T, T1, i&, j&
T = Sheets("AA").Range("c1")
With Sheets("QQ")
    Arr = .Range("a1:n" & .[b65536].End(3).Row)
    For i = 1 To UBound(Arr) Step 9
        For j = 2 To UBound(Arr, 2) Step 8
            T1 = Arr(i, j): If T1 = "" Then GoTo 99
            If T1 = T Then
                .Cells(i, j).Offset(1).Resize(4, 5).Copy Sheets("AA").[c2]
                Exit Sub
            End If
99:     Next
    Next
End With
End Sub
作者: ML089    時間: 2021-7-21 10:09

回復 1# zz0660

放在 AA表單的模組

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$1" Then
        Set xQ = Sheets("QQ").Cells.Find(AA.[C1], LookIn:=xlValues, LookAt:=xlWhole)
        xQ(2, 1).Resize(8, 8).Copy Sheets("AA").[c2]
    End If
End Sub
作者: zz0660    時間: 2021-7-21 23:24

回復 2# samwang

Arr = .Range("a1:n" & .[b65536].End(3).Row)

For i = 1 To UBound(Arr) Step 9
        For j = 2 To UBound(Arr, 2) Step 8

這幾句是什麼意思?
作者: samwang    時間: 2021-7-22 08:04

回復  samwang

Arr = .Range("a1:n" & ..End(3).Row)

For i = 1 To UBound(Arr) Step 9
        Fo ...
zz0660 發表於 2021-7-21 23:24


step 9 和 step 8 可移除,因為看你的查詢資料有固定才這樣設定,謝謝

Arr = .Range("a1:n" & ..End(3).Row)   '將要查詢資料裝入數組  
    For i = 1 To UBound(Arr) Step 9     '從第1列開始循環,每次跳9列
        For j = 2 To UBound(Arr, 2) Step 8   '從第2欄開始循環,每次跳8欄
作者: zz0660    時間: 2021-7-22 22:48

本帖最後由 zz0660 於 2021-7-22 22:50 編輯

回復 5# samwang


    您好,假設QQ裡面的數字都有公式組成,但顯示在AA的地方,只想要單純的數字,請問要多加什麼程式碼?

For j = 2 To UBound(Arr, 2) Step 8   這個要怎麼改成第一欄?
直接把2改成1的話程式會錯誤。
作者: samwang    時間: 2021-7-23 08:08

回復 6# zz0660


您好,假設QQ裡面的數字都有公式組成,但顯示在AA的地方,只想要單純的數字,請問要多加什麼程式碼?
>> 不太能理解您的問題,可否提供附件加以說明,謝謝

For j = 2 To UBound(Arr, 2) Step 8   這個要怎麼改成第一欄?
直接把2改成1的話程式會錯誤。   
>> 2改成1的話程式不會錯誤,可否提供檔案,謝謝

作者: zz0660    時間: 2021-7-23 10:05

回復 7# samwang

在此提供檔案 [attach]33725[/attach]
QQ貼上的內容 如AA那樣,但只想顯示純數字,還有AA表單有T1~T3的按鈕,按T1就會顯示T1的資料,就這樣囉,感謝您。
作者: samwang    時間: 2021-7-23 10:25

回復 8# zz0660


按T1就會顯示T1的資料
>> T1是指哪裡資料? T2?? T3??
作者: samwang    時間: 2021-7-23 11:02

回復 8# zz0660

請測試看看,下面是T1,如果要T2時T1和T3移除就可以,T3同上,謝謝

Sub T1()
Dim Arr, T, T1, i&, j&
T = Sheets("AA").Range("c1")
With Sheets("QQ")
    Arr = .Range("a1:h" & .[b65536].End(3).Row) 'T1   T1,T2,T3請自行選擇更換
    'Arr = .Range("j1:q" & .[k65536].End(3).Row) 'T2
    'Arr = .Range("s1:z" & .[t65536].End(3).Row) 'T3
    For i = 1 To UBound(Arr) Step 19
        T1 = Arr(i, 2): If T1 = "" Then GoTo 99
        If T1 = T Then
            Sheets("AA").[B3].Resize(16, 8).Value = .Cells(i, 1).Offset(1).Resize(16, 8).Value
            Exit Sub
        End If
99:  Next
End With
End Sub
作者: zz0660    時間: 2021-7-23 12:02

回復 9# samwang


    如圖所示[attach]33726[/attach] 但是 smr & xxc & cc,都各自對應自己的 T1,T2,T3的數據,麻煩您了,謝謝!
作者: samwang    時間: 2021-7-23 12:58

回復  samwang


    如圖所示 但是 smr & xxc & cc,都各自對應自己的 T1,T2,T3的數據,麻煩您了,謝謝 ...
zz0660 發表於 2021-7-23 12:02



那10#的程式,就是您要的需求,請試看看,謝謝
作者: zz0660    時間: 2021-7-23 14:31

本帖最後由 zz0660 於 2021-7-23 14:33 編輯

回復 12# samwang


    感謝您花時間協助,目前測試結果,T1 的是可以成功的,T2&T3 無反應。
J1:Q 這個是T2的  也核對過表格,確認無誤 ,但沒有任何反應
作者: samwang    時間: 2021-7-23 16:30

回復 13# zz0660


我測試沒問題,可否提供你測試有問題檔案,謝謝
作者: zz0660    時間: 2021-7-23 16:37

回復 14# samwang
檔案如附件  [attach]33728[/attach]

我將您的程式放在巨集表裡面,在aa表單裡面有 T1 & T2 &T3 按鈕,只有T1的按鈕生效。
作者: samwang    時間: 2021-7-23 19:36

回復 15# zz0660


我有測試沒問題,我修改一下T2、T3貼上的位置如附件,請再測試看看,謝謝
作者: zz0660    時間: 2021-7-23 20:17

回復 16# samwang

好的 先試試看
感謝您
作者: zz0660    時間: 2021-7-23 20:34

回復 16# samwang

改了,但出來的數據是T2 & T3的數據,如圖片。[attach]33731[/attach] 紅色框框  就是 T1的數據。
作者: samwang    時間: 2021-7-23 21:21

回復 18# zz0660

不好意思太粗心大意,T2、T3須更正資料[attach]33732[/attach]來源的位置如圖片,謝謝。
作者: zz0660    時間: 2021-7-23 22:55

回復 19# samwang


    感謝您,這樣就不用修改B3的位置了。  已成功,謝謝!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)