返回列表 上一主題 發帖

[發問] 請問有關對照帶入,找尋很久不知道怎麼做,感恩

[發問] 請問有關對照帶入,找尋很久不知道怎麼做,感恩

如圖一所表示,對照日期,將名稱填入表單,
如圖二所表示,對照日期,將名稱填入表單,但是不可以必須保留01日的資料

不知道這樣表達,清楚嗎?感謝各位!

VBA或函數都可以的,再次感謝!

01.jpg (117.88 KB)

01.jpg

2.jpg (122.42 KB)

2.jpg

範本.rar (8.99 KB)

感謝 感謝 准提部林 Scott090  我再來試驗看看

TOP

完整些,避免操作錯誤將之前的資料覆蓋了:
 
Sub TEST()
If Val([U3]) <= 0 Then Exit Sub
With [D1:S1].Offset([U3], 0)
   If Application.CountA(.Cells) > 0 Then
     If MsgBox("指定日期已有資料,是否更新數據? ", 0 + 4 + 256) = vbNo Then Exit Sub
   End If
   .Formula = "=IF(ISNA(MATCH(D$1,$A:$A,)),"""",VLOOKUP(D$1,$A:$B,2,))"
   .Value = .Value
End With
End Sub

TOP

公式搭VBA:
Sub TEST()
With [D1:S1].Offset([U3], 0)
  .Formula = "=IF(ISNA(MATCH(D$1,$A:$A,)),"""",VLOOKUP(D$1,$A:$B,2,))"
  .Value = .Value
End With
End Sub

要保留前值,僅用公式時,必須手動貼成〔值〕,使用VBA可一氣呵成!
 

TOP

回復 1# doulioufire


這個是否符合需求?
  1. Option Base 1
  2. Sub Test()
  3.     Dim aa, bb
  4.     Dim i&, j%
  5.     aa = Range("A2:B" & [b2].End(xlDown).Row).Value
  6.     ReDim bb(1, UBound(aa))
  7.     For i = 1 To UBound(aa)
  8.        If aa(i, 1) <> "" Then
  9.            j = j + 1                             '計算有幾個代號
  10.            bb(1, aa(i, 1)) = aa(i, 2)  '依代號排序
  11.        End If
  12.     Next
  13.     Cells(Cells(3, "U") + 1, "D").Resize(, j) = bb   '放在日的對應列
  14. End Sub
複製代碼

TOP

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