| 
    
     |  | かみちゃんさん、朝からありがとうございます! 昨日から、ありがとうございます。
 
 
 表のイメージをまた、書きませんでした。。
 すみませんでした。
 
 A  B   C  D  E   F ・・ AC    AD   AE
 1 数量    重量 金額 目標数 単価  合計数量    合計金額 基本単価
 2  10  10 100           150   2270  15(AD/AC)
 3  20  15 300            50   1000   20
 
 AEの基本単価150を、F列(他複数列有)に代入したいのです。
 上記例は、割り切れていますが、F2には、15.133・・と代入
 されています。表示方法で、基本単価列も、単価列も通貨小数点以下0にしておりますが、列幅自動にしても、15.133・・分の列幅をとってしまします。
 基本的なことかもしれませんが、15のみ代入するには、ROUNDUP関数を
 記述するのでしょうか?
 
 いつもすみませんが、どうぞよろしくお願い致します。
 
 
 ▼かみちゃん さん:
 >こんにちは。かみちゃん です。
 >
 >>単価の列を、まず検索し、同行の最終列の値を代入させたいのですが、
 >>最終列には、数式が入っています。
 >
 >[46523]でご質問された表のイメージでいいのですか?
 >  A  B   C   D  E   F  ・・・ CB
 >1 単価 数量 合計 単価 数量 合計    数量合計
 >2 5   10  50  10  10  100     20
 >3 2   10  20  5  8   40      18
 >
 >>「値のみ」代入させるには、Transpose等を記述するのでしょうか?
 >
 >上記の表のイメージ(G〜CAには値がないものとする)ですと、D3セルの5を取得
 >したいということでしょうか?
 >それであれば、Transposeは全く違います
 >TRANSPOSE関数は、配列の縦方向と横方向のセル範囲の変換を行う、ワークシート関数です。
 >
 >そこで、以下のようなコードでできると思います。
 >
 >Sub Sample2()
 > '列
 > Dim i As Integer
 > '最終列
 > Dim J As Integer
 >
 > Application.ScreenUpdating = False
 > '一番左の2行目
 > J = Range("IV2").End(xlToLeft).Column
 > For i = J To 1 Step -1
 >  If InStr(Cells(2, i).Value, "単価") > 0 Then
 >   MsgBox Cells(Rows.Count, i).End(xlUp).Address & vbCrLf & _
 >       Cells(Rows.Count, i).End(xlUp).Value
 >   Exit For
 >  End If
 > Next i
 > Application.ScreenUpdating = True
 >End Sub
 
 |  |