Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


55 / 13306 ツリー ←次へ | 前へ→

【80586】型が一致しないがわかりません ゆうすけ 19/3/15(金) 17:11 質問[未読]

【80621】Re:型が一致しないがわかりません マナ 19/3/19(火) 18:49 発言[未読]
【80623】Re:型が一致しないがわかりません ゆうすけ 19/3/20(水) 11:56 回答[未読]
【80624】Re:型が一致しないがわかりません マナ 19/3/20(水) 17:43 発言[未読]
【80626】Re:型が一致しないがわかりません ゆうすけ 19/3/21(木) 12:48 回答[未読]
【80627】Re:型が一致しないがわかりません マナ 19/3/21(木) 13:07 発言[未読]
【80628】Re:型が一致しないがわかりません ゆうすけ 19/3/21(木) 13:17 回答[未読]
【80629】Re:型が一致しないがわかりません マナ 19/3/21(木) 13:39 発言[未読]
【80630】Re:型が一致しないがわかりません ゆうすけ 19/3/22(金) 10:42 回答[未読]
【80631】Re:型が一致しないがわかりません ゆうすけ 19/3/22(金) 12:09 発言[未読]
【80632】Re:型が一致しないがわかりません ピンク 19/3/22(金) 15:09 回答[未読]
【80635】Re:型が一致しないがわかりません マナ 19/3/22(金) 17:52 発言[未読]
【80636】Re:型が一致しないがわかりません ゆうすけ 19/3/25(月) 14:29 お礼[未読]

【80621】Re:型が一致しないがわかりません
発言  マナ  - 19/3/19(火) 18:49 -

引用なし
パスワード
   ▼ゆうすけ さん:

>E24はブランクでセルの設定は「標準」になっています。

newRecordOffset = Val(Sh2Range.Value)

これで、エラーはなくなると思います。
ただ、今のコードでは期待通りの結果は得られないと思います。

どういう条件で、どこから、どこに転記したいのか説明できませんか。
提示されたコードをみても、何をしたいのか全く理解できません。

【80623】Re:型が一致しないがわかりません
回答  ゆうすけ  - 19/3/20(水) 11:56 -

引用なし
パスワード
   ▼マナ さん:
いつも親切にご説明ありがとうございます。

やりたいことは
・商品分類が1と2の2種類に分かれている商品リストがあります。
・分類1の商品はE24のセルから、分類2の商品はE56のセルからリストアップされるように転記したいです。

イメージとしてはA4用紙の上段が分類1の商品、下段が分類2の商品という感じです。

ネットや本で独学でマクロを勉強し始めたばかりなので
とりあえず「1であればE24に転記する」という条件1だけのマクロを作ってこちらに投稿させて頂いたという背景です。

【80624】Re:型が一致しないがわかりません
発言  マナ  - 19/3/20(水) 17:43 -

引用なし
パスワード
   ▼ゆうすけ さん:

>やりたいことは
>・商品分類が1と2の2種類に分かれている商品リストがあります。
>・分類1の商品はE24のセルから、分類2の商品はE56のセルからリストアップされるように転記したいです。

商品リストのレイアウト(どこに、どんなデータがあるのか)を
セル番地がわかるように、説明してください。

【80626】Re:型が一致しないがわかりません
回答  ゆうすけ  - 19/3/21(木) 12:48 -

引用なし
パスワード
   ▼マナ さん:

Worksheet"1"のK13:K40に商品名が入っています。
同じWorksheet"1"のP13:P40に商品分類の数字(1か2)が入っています。

別のシート"Sheet1"がマスタリストのような役目をしています。
C13:C40に日本語の商品名が入力されており、そこで商品名を選ぶと
K13:40にVLOOKUPで"Sheet1"から引っ張ってきた英語の商品名が入力されるようになっています。
商品分類も同様で、C13:C14で商品を選ぶとVLOOKUPで"Sheet1"のリストから引っ張ってくるように設定されています。

【80627】Re:型が一致しないがわかりません
発言  マナ  - 19/3/21(木) 13:07 -

引用なし
パスワード
   ▼ゆうすけ さん:

1)C13:C14で商品を選ぶ
2)K13:K40に英語の商品名を表示(Vlookup)
3)P13:P40に商品分類の数字(1か2)を表示(Vlookup)

ということですか

で、マクロでE24に転記したいのは、
C列の商品名ですか、K列の英語の商品名ですか。

【80628】Re:型が一致しないがわかりません
回答  ゆうすけ  - 19/3/21(木) 13:17 -

引用なし
パスワード
   ▼マナ さん:

はい!下記のとおりです。
>
>1)C13:C14で商品を選ぶ
>2)K13:K40に英語の商品名を表示(Vlookup)
>3)P13:P40に商品分類の数字(1か2)を表示(Vlookup)
>

マクロに転記したいのはK列の英語の商品名です。

【80629】Re:型が一致しないがわかりません
発言  マナ  - 19/3/21(木) 13:39 -

引用なし
パスワード
   ▼ゆうすけ さん:

では、こんな感じでできそうです。

Option Explicit

Sub test()
  Dim r1 As Range
  Dim c As Range
  Dim n1 As Long
  
  Set r1 = Worksheets("2").Range("E24")

  For Each c In Worksheets("1").Range("K14:K41")
    If c.Value = "" Then Exit For
    
    If c.Offset(, 4).Value = 1 Then
      r1.Offset(n1).Value = c.Value
      n1 = n1 + 1
     Else
      '商品分類2の場合
     End If
  Next
 
End Sub

【80630】Re:型が一致しないがわかりません
回答  ゆうすけ  - 19/3/22(金) 10:42 -

引用なし
パスワード
   ▼マナ さん:

ご回答ありがとうございます!
マナさんのおかげで、無事転記に成功することが出来ました!

しかし、転記は出来たのですが今度はセルを上から詰めて表示することに苦戦しています。

・ワークシート"1"のリストは
K13、K14、K16が商品分類1
K15が商品分類2となっています。

こちらで作った転記のマクロを実行すると
ワークシート"2"の
E24、E25、E27に商品分類1が転記され、E26がブランクという状態になっています。
E24:E49の間にブランクを詰めて分類1の商品名を表記させたいです。

上から順番に表示させるために下記のマクロを作成しました。
ブランクを詰めることは出来ましたが、E2セルから並んでしまい
どこを変更したらよいのか修正点が分からず悩んでおります。
ご依頼ばかりで申し訳ございませんが、マナさんのお力をお借り出来たらとても嬉しいです。
 
Sub Tumeru()
Dim i As Integer, j As Integer
j = 1
For i = 24 To 46
If (Range("E" & i).Rows <> "") Then
j = j + 1
Range("E" & i).Copy Range("E" & j)
Range("E" & i) = ""
End If
Next i
End Sub

【80631】Re:型が一致しないがわかりません
発言  ゆうすけ  - 19/3/22(金) 12:09 -

引用なし
パスワード
   ▼マナさん

下記補足です。
ブランクのセルを詰めて順番に表記する際に
ブランクのセルを削除して詰めることはやりたくありません・・・。
というのも、E24:E49に商品分類1、E56:E59に商品分類2を入力したいため
商品分類1のブランクのセルを削除してしまうと、商品分類2のセルが移動してしまうためです。


>▼マナ さん:
>
>ご回答ありがとうございます!
>マナさんのおかげで、無事転記に成功することが出来ました!
>
>しかし、転記は出来たのですが今度はセルを上から詰めて表示することに苦戦しています。
>
>・ワークシート"1"のリストは
>K13、K14、K16が商品分類1
>K15が商品分類2となっています。
>
>こちらで作った転記のマクロを実行すると
>ワークシート"2"の
>E24、E25、E27に商品分類1が転記され、E26がブランクという状態になっています。
>E24:E49の間にブランクを詰めて分類1の商品名を表記させたいです。
>
>上から順番に表示させるために下記のマクロを作成しました。
>ブランクを詰めることは出来ましたが、E2セルから並んでしまい
>どこを変更したらよいのか修正点が分からず悩んでおります。
>ご依頼ばかりで申し訳ございませんが、マナさんのお力をお借り出来たらとても嬉しいです。
> 
>Sub Tumeru()
>Dim i As Integer, j As Integer
>j = 1
>For i = 24 To 46
>If (Range("E" & i).Rows <> "") Then
>j = j + 1
>Range("E" & i).Copy Range("E" & j)
>Range("E" & i) = ""
>End If
>Next i
>End Sub

【80632】Re:型が一致しないがわかりません
回答  ピンク  - 19/3/22(金) 15:09 -

引用なし
パスワード
   ▼ゆうすけ さん:
>Sub Tumeru()
>Dim i As Integer, j As Integer
>j = 1
>For i = 24 To 46
>If (Range("E" & i).Rows <> "") Then
>j = j + 1
>Range("E" & i).Copy Range("E" & j)
>Range("E" & i) = ""
>End If
>Next i
>End Sub

Sub Tumeru2()
  Dim v As Variant, c As Range, i As Long
  
  With Range("E24:E46")
    ReDim v(1 To .Count)
    For Each c In .Cells
      If c.Value <> "" Then
        i = i + 1
        v(i) = c.Value
      End If
    Next
    .Value = Application.Transpose(v)
  End With
End Sub

【80635】Re:型が一致しないがわかりません
発言  マナ  - 19/3/22(金) 17:52 -

引用なし
パスワード
   ▼ゆうすけ さん:

>E24、E25、E27に商品分類1が転記され、E26がブランクという状態になっています。


間違えました。

If c.Offset(, 5).Value = 1 Then

にしてください。
そして、この行の意味をよく考えてください。
結果がでればよいというものではありません。
理解できていれば、ご自分で修正できます。

さらに、↓は、必要なくなります。

>上から順番に表示させるために下記のマクロを作成しました。

【80636】Re:型が一致しないがわかりません
お礼  ゆうすけ  - 19/3/25(月) 14:29 -

引用なし
パスワード
   ▼マナ さん:

返答が遅くなってしまい申し訳ございません。
マナさんのおかげで無事完成致しました!!
本当にありがとうございました。

55 / 13306 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free