
No.2ベストアンサー
- 回答日時:
シート名タブを右クリックしてコードの表示を選ぶ
現れたシートに下記をコピー貼り付ける
private sub worksheet_change(byval Target as excel.range)
dim h as range
on error resume next
for each h in application.intersect(target, range("C:C"))
if h <> "" then
cells(h.row, "A").formular1c1 = "=COUNTA(R1C[2]:RC[2])"
cells(h.row, "B") = date
else
h.offset(0,-2).resize(1, 2).clearcontents
end if
next
end sub
ファイルメニューから終了してエクセルに戻る
C列に記入する。
ご回答ありがとうございます!これはすごいです。なぜならC列の任意のセルに数字を入力しても
上からちゃんと認識して数字を並び替えてくれるからです。
しかしすでにC2セルに文字が入っているため、うまくNO1からスタートしてくれません;
ちなみにC3から入力が始まります。最初にそのように前置きをおいていませんでした。大変申し訳
ありません;
そして
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
If Target.Count = 1 Then
i = Target.Row
Range("C1,D1").Value = Cells(i, 1).Value
End If
End Sub
という任意のA列を選択するとC1、D1に数字がコピーされるコードも入れているのですが
そのせいでうまく機能していません。
お力をいただけたら幸いです。
No.3
- 回答日時:
一例です。
対象シートタブ上で右クリック→コードの表示→以下のコードを貼り付けてお試しください。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C:C")) Is Nothing Then Exit Sub
For Each wk In Target
If wk.Value <> "" Then
wk.Offset(0, -2).Value = Application.Max(Range("A:A")) + 1
wk.Offset(0, -1).Value = Date
Else
wk.Offset(0, -2).Resize(1, 2).ClearContents
End If
wk.Offset(0, -1).EntireColumn.AutoFit
Next
End Sub
この回答への補足
申し訳ないです。先の問題はC1,D1の箇所を変更したら解決しました。ありがとうございます。
問題としては、C1セル以外にもD列も入力するのですが、例えばC1セル、D1セルを同時に選択して
消去するとエラーが出ます。これはどうやっても解決できなかったので教えていただければ助かります;
ご回答ありがとうございます!思い通りのことができて感謝します。確かにエクセルにコードを記入して
やってみるとすんなりできました。しかし大変申し訳ないです;
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
If Target.Count = 1 Then
i = Target.Row
Range("C1,D1").Value = Cells(i, 1).Value
End If
End Sub
このコードを同じSheet1に入れているのですが、これはSheet1の任意のセルを選択すると
C1、D1に同じ数字を入力するコードです。この状態で教えていただいたコードでやると、
B1、C1セルに日付が勝手に入ってしまい、数字がでたらめになってしまいます;
どうすればよいでしょうか。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA sum ワークシートChange
-
Excelで、あるセルの値に応じて...
-
rowsとcolsの意味
-
Worksheets メソッドは失敗しま...
-
期限を超えた日付に警告のメッ...
-
【Excel VBA】カンマと改行コー...
-
IIF関数の使い方
-
URLのリンク切れをマクロを使っ...
-
VBAのFind関数で結合セルを検索...
-
Excel VBA_2000ハイパーリンク...
-
DataGridViewに空白がある場合...
-
マクロについて。S列の途中から...
-
C# dataGridViewの値だけクリア
-
VBA 何かしら文字が入っていたら
-
VBA 値と一致した行の一部の列...
-
重複データをまとめて合計を合...
-
ExcelVBAで配列2つを結合させ...
-
vba 重複データ合算
-
VBA A列にありB列にないものま...
-
VBAで特定の範囲の入力が出来な...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Cellsのかっこの中はどっちが行...
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
IIF関数の使い方
-
VBAのFind関数で結合セルを検索...
-
Changeイベントでの複数セルの...
-
VBA 何かしら文字が入っていたら
-
【VBA】2つのシートの値を比較...
-
DataGridViewに空白がある場合...
-
VBAで、特定の文字より後を削除...
-
URLのリンク切れをマクロを使っ...
-
エクセル 2つの表の並べ替え
-
VBAを使って検索したセルをコピ...
-
VBAコンボボックスで選択した値...
-
VBAでのリスト不一致抽出について
-
複数csvを横に追加していくマク...
-
C# dataGridViewの値だけクリア
-
データグリッドビューの一番最...
おすすめ情報