返回列表 上一主題 發帖

vba 搜尋儲存格後,貼上其他欄位

vba 搜尋儲存格後,貼上其他欄位

各位版大版友好
  小弟這邊有個EXCEL 問題想請教較,如果我要在右邊輸入我想要的代碼(如右邊的KA800),
然後搜尋左邊A那欄,搜尋到之後,貼上跟隨其(B~I,BC 貼右邊第一列數字),請問這樣該如何寫這個VBA
感謝!!~

A                   B             C               D              E              F          G               H           I
KA100        0.2410         0.2150         0.2425         0.2200         0.2475         0.2200         0.2460         0.2150                                        
KA200        0.2460         0.2150         0.2475         0.2200         0.2525         0.2200         0.2510         0.2150                                 KA100       
KA300        0.2510         0.2150         0.2525         0.2200         0.2575         0.2200         0.2560         0.2150                                 0.2410         0.2150
KA400        0.2560         0.2150         0.2575         0.2200         0.2625         0.2200         0.2610         0.2150                                 0.2425         0.2200
KA500        0.2610         0.2150         0.2625         0.2200         0.2675         0.2200         0.2660         0.2150                                 0.2475         0.2200
KA600        0.2660         0.2150         0.2675         0.2200         0.2725         0.2200         0.2710         0.2150                                 0.2460         0.2150
KA700        0.2710         0.2150         0.2725         0.2200         0.2775         0.2200         0.2760         0.2150                                        
KA800        0.2760         0.2150         0.2775         0.2200         0.2825         0.2200         0.2810         0.2150

本帖最後由 c_c_lai 於 2016-5-17 20:02 編輯

回復 1# snoopykay
  1. Sub Ex()
  2.     Dim sStr$, rest As Range
  3.     Dim lTar As Range, rTar As Range
  4.    
  5.     Range("K2:L10").Clear
  6.     sStr = InputBox("請輸入要搜尋的資料", "尋找資料")
  7.     Set lTar = Range("A:A").Find(sStr, LookIn:=xlValues)
  8.    
  9.     If Not lTar Is Nothing Then
  10.         '  Set rest = lTar.Resize(1, 9)
  11.         Set rTar = Cells(2, 11)
  12.         ' rTar.Resize(9, 1) = Application.Transpose(rest)   '  上下行同義
  13.         rTar.Resize(9, 1) = Application.Transpose(lTar.Resize(1, 9))
  14.     End If
  15. End Sub
複製代碼

TOP

回復 4# luhpro

感謝大大的回覆

讓小弟增加見聞了

感恩

TOP

本帖最後由 ML089 於 2016-5-17 13:13 編輯

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xF As Range
    If Target.Address <> "$K$2" Then Exit Sub
    Set xF = [Sheet1!A:A].Find([K2].Value, lookat:=xlWhole)
    If xF Is Nothing Then MsgBox "找不到": Exit Sub
    For i = 1 To 4
         xF(1, i * 2).Resize(, 2).Copy [K2:L2].Offset(i, 0)
    Next
End Sub

再將 K2 設定為 A:A 的選單,可以簡化作業
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 3# mave
請參考小幫手的說明:

Integer 資料型態

Integer 變數係以範圍為 -32,768 到 32,767 之 16 位元 (2 個位元組) 數字的形式儲存。Integer 的型態宣告字元是百分比符號(%)。

TOP

回復  snoopykay
luhpro 發表於 2016-5-12 22:25


請教luhpro 大大

iI% 還有 iCol% 後面的%符號是代表啥意思呢?

小弟才學粗淺,煩請指教

TOP

回復 1# snoopykay
  1. Sub nn()
  2.   Dim iI%, iCol%
  3.   Dim lTop&
  4.   Dim sStr$
  5.   Dim rTar As Range
  6.   
  7.   Range([K2], [L8]).Clear
  8.   sStr = InputBox("請輸入要搜尋的資料", "尋找資料")
  9.   Set rTar = Range("A:A").Find(sStr, LookIn:=xlValues)
  10.   If Not rTar Is Nothing Then
  11.     With rTar
  12.       iCol = 11
  13.       lTop = 2
  14.       Cells(lTop, iCol) = .Value
  15.       For iI = 0 To 3
  16.         Range(.Offset(, iI * 2 + 1), .Offset(, iI * 2 + 2)).Copy Cells(lTop + iI + 1, iCol)
  17.       Next
  18.     End With
  19.   End If
  20. End Sub
複製代碼
VBA搜尋儲存格後,貼上其他欄位.zip (7.77 KB)

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題