私はvbaについて少し知っていますが、これをvbaを使用して実現したいと思います。 特殊なケースで、シートから別のシートにデータを転送しています。Excel VBA別のシートの特定の部分または範囲にセルデータを転送します
このような状況を考える:B10
- A4を持っている別のシートで をH10
私のデータは、この
のようなものですAXX | Contact no.
AXX | Address
AXX | Name
AXX | Summary
BXX | Address
BXX | Name
BXX | Contact no.
BXX | Details
CXX | Address
CXX | Name
CXX | Summary
DXX | Address
DXX | Name
DXX | Contact no.
DXX | Address
DXX | Name
私の識別子は最初の列(AXX、BXX ...)にあります。
予想される出力は次のようになります。
Row no| Column A | Column B | Column D | Column E |
1 | | | | |
2 | | | BXX | Address |
3 | | | BXX | Name |
4 | AXX | Contact no. | BXX | Contact no. |
5 | AXX | Address | BXX | Details |
6 | AXX | Name | | |
7 | AXX | Summary | CXX | Address |
8 | | | CXX | Name |
9 | | | CXX | Summary |
10 | | | | |
あなたが見ることができるとおり、私の識別子は、彼らが類似している場合、私はノーカウントだろう... AXX、BXXです。行の数と比較してください。私の範囲の行の行の。 BXXはAXXの横には配置されませんでした。これは、残りの行が3でBXXが4であるため、次の範囲に渡されるためです。また、BXXおよびCXXに見られるように、他の値を分離する空白のセルがあります。
今のところ私が知っているのは、Forループを使用して行を数えることだけです。この感謝のためにあなたの助けを求めたいですか? 行を取得するための私の最初のコードは、私は私のコードが間違っている知っていると私は、このアプローチは正しい軌道に乗っているかどうかわからないのです
Dim aa, aaLastrow As Long
aaLastrow = ShtData.Range("A" & Rows.Count).End(xlUp).Row
For aa = 2 To aaLastrow
If ShtData.Cells(aa, 2).Value = ShtData.Cells(bb, 4).Value Then
Sheets("Sheet1").Cells(aa, 1).Value = ShtData.Cells(aa, 2).Value
End If
Next aa
を数えます。
ご回答ありがとうございます。この部分に問題があります。n = n + 1 vDB(n、1)= vData(j、1) – CJanon