2017-09-22 3 views
0

Excelを使用してタイムカードの合計時間を計算するために、特定のセルから特定の数値を引き出すFor Nextループを実行しようとしています私が使っているもののためのプログラム)。しかし、R1C1を使用しているため、場所のカウントを実行しているため、どのように実行するのか把握できません。私は物事を行うこの特定の方法に隠れているわけではありませんが、そのバリエーションはAccessで働いていました(しかし、理由のためにAccessを使用することはできません)。For ... Next Loopで変数を使用してExcelでR1C1を指定する

添付されているコードは、私が使用しているコードです。

For Weekday = 11 To 17 'Determine the day of the week by Row Reference (R1C1 format) 
    For DayValue = 29 To 34  'Determin time input (Call, Meal In, Meal Out, Wrap, etc.) for day of the week 
     WrkTimes(DayValue) = ActiveSheet.Cells.FormulaR1C1 = "R" & (Weekday) & "C" & (DayValue) 'Select the correct time input 
    Next DayValue 'Process the next time input  
    TotHrs(Weekday) = WrkTimes(34) - WrkTimes(29) - (WrkTimes(31) - WrkTimes(30)) - (WrkTimes(33) - WrkTimes(32)) 'Calculate total hours for the day 
    ActiveSheet.Cells(Weekday, 37) = TotHrs(Weekday) 'Display total hours for the day in the proper cell 

はいこのループの最後に[次へ]コマンドがありますが、これと最後の間に他の関連性のないコードがあります。私はあなただけ格納する必要があるだろう

+0

'WrkTimes(DayValue)= ActiveSheet.Cells(Weekday、DayValue).Value'についてはどうですか?私はあなたがやろうとしていることだと思っています。 – Phylogenesis

+0

それはそのセルの価値を引き出していません。私はそれを実行しようとすると、私はセルから必要としている値を取得していない私は下付き文字を範囲外のエラーを取得しています。 式は、次のようになります。 TotHrs(平日)= 22.0-8.0-(14.5-14.0) - (0.0-0.0) TotHrs(平日)の値が13.5になる –

答えて

0

私の最初の提案は

Cells(r, c) 

を使用することですそして、あなたがそのような

Cells(r-3, c) 

としてあなたのオフセットに置くことができDayValueライン上のエラーを取得していますrとcの値は、平日(r)と日の値(c)として行っています。場合


あなたがループで見ているものであれば:

Cells(Weekday, DayValue).Value 

これは、あなたが参照してきたセルの値を与えるだろう。


編集:私のコメントから

提案:

Dim i as Long, j as Long, k as Long 
For Weekday = 11 To 17 
    i = Cells(Weekday, 34).Value 'Should allow you to have an output for each row 
    For DayValue = 33 To 29 Step -1 'Saving column 34 outside of the dayvalue loop 
     j = i 
     k = Cells(Weekday, DayValue).Value 
     i = j - k 
    Next DayValue 
    Cells(Weekday, 37).Value = i 
Next Weekday 
+0

したがって、私はあなたの推薦をしました(それに感謝します)、それは適切な細胞の位置を特定しています。ただし、そのセルの価値を引き出すわけではありません。 –

+0

@LorenBentley私の提案に私の記事の編集を参照してください。がんばろう! – Cyril

0

だから、私は範囲外の添字を取得保管する理由(スコットと系統発生からの提案に従った後)を明確にします私の平日(x)は17に設定されていなければならないとき7に設定されていたことが分かります。

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

関連する問題