ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3682412 VBA シート上の転記について
質問者:8610mama If 入力シート.Range("A4").Value = "会社" Then

Dim 会社シート最終行 As Long

会社シート最終行 = 会社シート.Range("AA65536").End(xlUp).Row + 1

会社シート.Range("A" & 会社シート最終行).Value = 入力シート.Range("A4").Value
会社シート.Range("A" & 会社シート最終行).Value = 入力シート.Range("B4").Value

VBAで上記のように入力していて、これに会社シートのA行を別のシートに転記したい場合どういう入力方法になるのでしょうか。
同じ公式で会社シートの所をsheet1、入力シートの所を会社シートと入力したのですがまったく反映されませんでした。

VBAを始めたばかりなので試行錯誤しながらしています。
困り度:
  • すぐに回答を!
質問投稿日時:
08/01/15 16:41
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.7 #1です。
申し訳ない・・・。
End ifの上にNext iが抜けていました。
回答者:SuperMild
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/01/16 13:42
この回答へのお礼ありがとうございました。

回答

ANo.6 #1です。
以下で基本的には動作するかと思いますが、提示するコードは
正確にお願いします。
「これが・・・」と書かれていますがどれですか?在庫シートのみ?
会社シートの方はAA列で間違いないのでしょうか?
入力シートから会社シートに転記してそれを在庫シートに転記するので
あれば入力シートから双方のシートに転記でよいのでは?
転記する範囲もこちらの想定でしかありません。

Sub 入力する()
Dim 会社シート最終行 As Long
Dim i As Integer
If 入力シート.Range("A4").Value = "会社" Then
For i = 1 To 2
会社シート最終行 = Sheets("会社シート").Range("A65536").End(xlUp).Row + 1
Sheets("会社シート").Range("AA" & 会社シート最終行).Value = Sheets("入力シート").Range("A4").Value
Sheets("在庫シート").Range("A" & 在庫シート最終行).Value = Sheets("会社シート").Range("A4").Value
End If
End Sub
回答者:SuperMild
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/01/16 13:33
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.5 度々#1です。
>会社シート最終行 = 会社シート.Range("AA65536").End(xlUp).Row + 1
はA65536の間違いですか??

因みに、入力シートのA1及びA2のデータを実行する度に会社シートとSheet1
のA列の最終行に追加していくには以下のようにすればよいかと思います。
Sub test()
Dim 会社シート最終行 As Long
For i = 1 To 2
会社シート最終行 = Sheets("会社シート").Range("A65536").End(xlUp).Row + 1
Sheets("会社シート").Range("A" & 会社シート最終行).Value = Sheets("入力シート").Range("A" & i).Value
Sheet1.Range("A" & 会社シート最終行).Value = Sheets("入力シート").Range("A" & i).Value
Next i
End Sub
回答者:SuperMild
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/01/15 19:17
この回答への補足Sub 入力する()

If 入力シート.Range("A4").Value = "会社" Then

Dim 会社シート最終行 As Long
Fori=1 To 2

会社シート最終行 = 会社シート.Range("A65536").End(xlUp).Row + 1


会社シート.Range("AA" & 会社シート最終行).Value = 入力シート.Range("A4").Value
在庫シート.Range("A" & 在庫シート最終行).Value = 会社シート.Range("A4)
・↑
・(これがZまで続きます。)


Else
End If
End Sub

これでいいのでしょうか?
やってみましたが反映されません・・・・
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.4 #1です。
入力シートのA4とB4は何ですか?
入力シートのデータを会社シートに転記する条件等も不明確です。
提示されている内容だと会社シートの最終行は入力シートのA4を転記する
時も、B4を転記する時も同じ行になっています。
もう少し具体的なことがわからないと・・・。
Sheet1への転記は会社シートに転記するタイミングと同じ時に行えば
よいような気がします。
回答者:SuperMild
種類:補足要求
どんな人:一般人
自信:参考意見
回答日時:
08/01/15 19:07
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.3 #1です。
良く見たら、提示されている内容だと、会社シートのA列最終行は
入力シートのA4の値にした後B4の値になるようになっています。
今ひとつ何がしたいのか不明です・・・。
どうしたいのでしょうか?
回答者:SuperMild
種類:補足要求
どんな人:一般人
自信:参考意見
回答日時:
08/01/15 17:19
この回答への補足入力シートに入力→会社シートA1に転記される→入力シートに入力→会社シートA2に転記される・・・・これの繰り返しになります。

これに
入力シートに入力→会社シートA1、sheetA1に転記される・・・・

という風にしたいのですが・・・
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.2 #1です。
下記でよいのでは?
現状提示されているものは動作しているのですよね?

会社シート最終行 = 会社シート.Range("AA65536").End(xlUp).Row + 1
Sheet1.Range("A" & 会社シート最終行).Value = 会社シート.Range("A4").Value
Sheet1.Range("A" & 会社シート最終行).Value = 会社シート.Range("B4").Value
回答者:SuperMild
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/01/15 17:15
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.1 最終行取得ですが、Sheet1のAA列にデータはあるのでしょうか?
会社シートの最終行までならこの部分はそのままで良いかと思います。
回答者:SuperMild
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/01/15 16:53
この回答への補足AA列にはデーターはないです。
この回答へのお礼この回答にお礼をつける(質問者のみ)