Excel VBA質問箱 IV

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

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


92 / 3841 ページ ←次へ | 前へ→

【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
・ツリー全体表示

【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
・ツリー全体表示

【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
・ツリー全体表示

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

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

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

マクロに転記したいのはK列の英語の商品名です。
・ツリー全体表示

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

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

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

ということですか

で、マクロでE24に転記したいのは、
C列の商品名ですか、K列の英語の商品名ですか。
・ツリー全体表示

【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"のリストから引っ張ってくるように設定されています。
・ツリー全体表示

【80625】Re:【関数】名前の抽出について
発言  マナ  - 19/3/20(水) 18:50 -

引用なし
パスワード
   ▼かず さん:
>VBAではないですが、関数にて名前の抽出方法を教えて頂きたいです。

板違いとわかっていて、他でなく、ここで質問する理由は?
・ツリー全体表示

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

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

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

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

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

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

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

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

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

【80622】【関数】名前の抽出について
質問  かず  - 19/3/20(水) 8:10 -

引用なし
パスワード
   VBAではないですが、関数にて名前の抽出方法を教えて頂きたいです。


 A ふじ子   
 (空白) 
 B てる子   
 A ゆみこ 

ExcelシートにA、B、Cと複数チーム分けされ、
それぞれ個別の名前がふられたEXCELシートが
あります。

別のシートにAチームの人は誰々、Bチームの人は
誰々と自動的に検出される表を作成したいですが
うまくいきません。アドバイスお願いします。

(別のシート)
A   ふじ子
    ゆみ子
B   てる子
・ツリー全体表示

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

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

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

newRecordOffset = Val(Sh2Range.Value)

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

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

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

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

E24はブランクでセルの設定は「標準」になっています。
・ツリー全体表示

【80619】Re:Worksheet.Delete の動き
お礼  北浦  - 19/3/19(火) 9:12 -

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

>ontimeメソッドを使って、
>シート削除後に、インポートではだめですか?

試してみました。おぉ!できました。
ありがとうございます。
ロジックに組み込んでみます。

ありがとうございました。
・ツリー全体表示

【80618】Re:フォルダ内のファイルの一部シートの...
発言  マナ  - 19/3/18(月) 18:49 -

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


>→全集計シートの1行目の最終列から空白セルを除いた最終列箇所

>→offset(0.1)で右方向(列)を1列づつずらして転記

では、列方向でなく、行方向に、転記するためには、
それぞれ、どう変更したらよいか考えてください。
コードでなくて良いです。
日本語の文章だとどうなるか考えてください。
・ツリー全体表示

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

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

>下記の部分が「型が一致しません」と出てしまいました。
>
>newRecordOffset = Sh2Range.Value


Worksheets("2")のE24には、何が入力されているのでしょうか?
・ツリー全体表示

【80616】Re:型が一致しないがわかりません
質問  ゆうすけ  - 19/3/18(月) 13:59 -

引用なし
パスワード
   ▼マナ さん:
ご丁寧にご返信ありがとうございます!
教えて頂いたものを入力したのですが
下記の部分が「型が一致しません」と出てしまいました。

newRecordOffset = Sh2Range.Value

どこを修正すれば良いのでしょうか??
・ツリー全体表示

【80615】Re:フォルダ内のファイルの一部シートの...
質問  mkmk  - 19/3/17(日) 23:50 -

引用なし
パスワード
   下記のような認識です。
▼マナ さん:
>▼mkmk さん:
>。
>>ただ、貼り付けは行方向に追加したかったのですが、
>>列方向に貼り付く記述でした。
>
>>貼り付け元a1:b30 で、貼り付け先での2ファイル目からa30:b60
>>というように行方向に追加されるには
>>
>>
>Set target = ThisWorkbook.Worksheets("全集計").Cells(1, Columns.Count).End(xlToLeft)

→全集計シートの1行目の最終列から空白セルを除いた最終列箇所

>target.Offset(0, 1).PasteSpecial Paste:=xlPasteValues
→offset(0.1)で右方向(列)を1列づつずらして転記
・ツリー全体表示

【80614】Re:フォルダ内のファイルの一部シートの...
発言  マナ  - 19/3/17(日) 23:18 -

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

>ただ、貼り付けは行方向に追加したかったのですが、
>列方向に貼り付く記述でした。

>貼り付け元a1:b30 で、貼り付け先での2ファイル目からa30:b60
>というように行方向に追加されるには
>

以下の2行の意味を説明してください。

Set target = ThisWorkbook.Worksheets("全集計").Cells(1, Columns.Count).End(xlToLeft)

target.Offset(0, 1).PasteSpecial Paste:=xlPasteValues
・ツリー全体表示

【80613】Re:フォルダ内のファイルの一部シートの...
質問  mkmk  - 19/3/17(日) 23:04 -

引用なし
パスワード
   すみません。
pastspecial→PasteSpecialですね!!
何故か動きました。

80604で記述頂いたCDをコピペしました。
.Worksheets("集計").Range("a1:b30").Copy
target.Offset(0, 1).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False


▼マナ さん:
>▼mkmk さん:
>>おかしい状態ですか?
>>
>>.Worksheets("集計").Range("a1:b30").Copy target.Offset(0, 1)
>>.pastspecial Paste:=xlPasteValues
>>Application.CutCopyMode = False
>>
>
>
>なぜ、そうなるのですか?
>
>ht tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=80604;id=excel
・ツリー全体表示

【80612】Re:フォルダ内のファイルの一部シートの...
発言  マナ  - 19/3/17(日) 22:28 -

引用なし
パスワード
   ▼mkmk さん:
>おかしい状態ですか?
>
>.Worksheets("集計").Range("a1:b30").Copy target.Offset(0, 1)
>.pastspecial Paste:=xlPasteValues
>Application.CutCopyMode = False
>


なぜ、そうなるのですか?

ht tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=80604;id=excel
・ツリー全体表示

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