Excel VBA質問箱 IV

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

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


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

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

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

引用なし
パスワード
   おかしい状態ですか?

.Worksheets("集計").Range("a1:b30").Copy target.Offset(0, 1)
.pastspecial Paste:=xlPasteValues
Application.CutCopyMode = False

転記先の全集計シートの表示結果は下記
A    B        C      D     E    ・・・・・
    日付     金額   日付     金額
    20190225    1    20190226    2
    20190225    1    20190226    2
     ・      ・     ・     ・
     ・      ・     ・     ・
 
>▼mkmk さん:
>
>>無事、転記ができました。
>
>本当ですか?
>
>>  .Worksheets("集計").Range("a1:b30").Copy target.Offset(0, 1)
>>  .pastspecial Paste:=xlPasteValues
>
>
>実際のコードを、ここにコピー貼り付けけしていただけませんか。
・ツリー全体表示

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

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

>無事、転記ができました。

本当ですか?

>  .Worksheets("集計").Range("a1:b30").Copy target.Offset(0, 1)
>  .pastspecial Paste:=xlPasteValues


実際のコードを、ここにコピー貼り付けけしていただけませんか。
・ツリー全体表示

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

引用なし
パスワード
   すみません。

ご指摘の通り、記述に漏れがありました。
.End(xlToLeft)
無事、転記ができました。
ただ、貼り付けは行方向に追加したかったのですが、
列方向に貼り付く記述でした。
最初の記述に気が付きませんでした。


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

再度申し訳ございません。自身でも
Cells(Rows.Count, 1).End(xlUp)とOffset(30, 0)等行ってみたのですが、
上手くいきません
教えて頂けないでしょうか。


Sub sample()
  Dim myPath As String
  Dim myFile As String
  Dim target As Range
  On Error Resume Next
 
  myPath = ThisWorkbook.Path & "\"
  Application.Calculation = xlCalculationManual
  Application.ScreenUpdating = False
 
   myFile = Dir(myPath & "*.xlsx")
 
   Do Until myFile = ""
  
   If myFile <> ThisWorkbook.Name Then
   Set target = ThisWorkbook.Worksheets("全集計").Cells(1, Columns.Count).End(xlToLeft)
   With Workbooks.Open(Filename:=myPath & myFile)
  .Worksheets("集計").Range("a1:b30").Copy target.Offset(0, 1)
  .pastspecial Paste:=xlPasteValues
  Application.CutCopyMode = False
  .Close savechanges:=False
   End With
   End If
   myFile = Dir()
  Loop
 
  End Sub
・ツリー全体表示

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

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

指摘箇所が、修正されていないのはなぜでしょうか?
ここまでの、やり取りを、再確認お願いします。
・ツリー全体表示

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

引用なし
パスワード
   何度もすみません・・。

Sub sample()
  Dim myPath As String
  Dim myFile As String
  Dim target As Range
  On Error Resume Next
  
  myPath = ThisWorkbook.Path & "\"
  Application.Calculation = xlCalculationManual
  Application.ScreenUpdating = False
  
  myFile = Dir(myPath & "*.xlsx")
  
  Do Until myFile = ""
  
   If myFile <> ThisWorkbook.Name Then
  
  
  Set target = ThisWorkbook.Worksheets("全集計").Cells(1, Columns.Count)
   
   
  With Workbooks.Open(Filename:=myPath & myFile)
  .Worksheets("集計").Range("a1:b30").Copy Destination:=target.Offset(0, 1)
  .pastspecial Paste:=xlPasteValues
  Application.CutCopyMode = False
  .Close savechanges:=False
   End With
   End If
   myFile = Dir()
  Loop
 
  End Sub


▼マナ さん:
>▼mkmk さん:
>
>>ただ、やはり貼付先の集計FILE SHEET全集計には貼りつきません。
>
>現在のコードを、もう一度、ここに貼り付けてください。
・ツリー全体表示

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

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

>ただ、やはり貼付先の集計FILE SHEET全集計には貼りつきません。

現在のコードを、もう一度、ここに貼り付けてください。
・ツリー全体表示

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

引用なし
パスワード
   ▼マナ さん:
そういう事だったのですね・・・検討違いな考えを・・すみません。

ただ、やはり貼付先の集計FILE SHEET全集計には貼りつきません。
貼り付け元の方で、範囲を指定してCopyまでは進んでいるようなのですが、
もしかすると、そのまま貼り付け元に貼り付けしているのかもしれません。

ほかに原因があるのでしょうか・・・。


>▼mkmk さん:
>
>形式を選択して貼り付けは、1行ではかけません。

>
>.Worksheets("集計").Range("a1:b30").Copy
>target.Offset(0, 1).PasteSpecial Paste:=xlPasteValues
>Application.CutCopyMode = False
・ツリー全体表示

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

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

形式を選択して貼り付けは、1行ではかけません。

.Worksheets("集計").Range("a1:b30").Copy
target.Offset(0, 1).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
・ツリー全体表示

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