dポイントプレゼントキャンペーン実施中!

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を始めたばかりなので試行錯誤しながらしています。

A 回答 (7件)

#1です。


申し訳ない・・・。
End ifの上にNext iが抜けていました。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2008/01/17 12:57

#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
    • good
    • 0

度々#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

この回答への補足

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

これでいいのでしょうか?
やってみましたが反映されません・・・・

補足日時:2008/01/16 12:49
    • good
    • 0

#1です。


入力シートのA4とB4は何ですか?
入力シートのデータを会社シートに転記する条件等も不明確です。
提示されている内容だと会社シートの最終行は入力シートのA4を転記する
時も、B4を転記する時も同じ行になっています。
もう少し具体的なことがわからないと・・・。
Sheet1への転記は会社シートに転記するタイミングと同じ時に行えば
よいような気がします。
    • good
    • 0

#1です。


良く見たら、提示されている内容だと、会社シートのA列最終行は
入力シートのA4の値にした後B4の値になるようになっています。
今ひとつ何がしたいのか不明です・・・。
どうしたいのでしょうか?

この回答への補足

入力シートに入力→会社シートA1に転記される→入力シートに入力→会社シートA2に転記される・・・・これの繰り返しになります。

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

という風にしたいのですが・・・

補足日時:2008/01/15 17:47
    • good
    • 0

#1です。


下記でよいのでは?
現状提示されているものは動作しているのですよね?

会社シート最終行 = 会社シート.Range("AA65536").End(xlUp).Row + 1
Sheet1.Range("A" & 会社シート最終行).Value = 会社シート.Range("A4").Value
Sheet1.Range("A" & 会社シート最終行).Value = 会社シート.Range("B4").Value
    • good
    • 0

最終行取得ですが、Sheet1のAA列にデータはあるのでしょうか?


会社シートの最終行までならこの部分はそのままで良いかと思います。

この回答への補足

AA列にはデーターはないです。

補足日時:2008/01/15 17:02
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!