質問編集履歴
1
コードを追加しました。Calculateを追加しても正しく反映されませんでした。
title
CHANGED
File without changes
|
body
CHANGED
@@ -4,9 +4,29 @@
|
|
4
4
|
①関数が記入されているExcelシートにダウンロードしたデータを貼り付ける
|
5
5
|
②貼り付けたデータの内容で関数の結果が変更される
|
6
6
|
③変更された関数の結果をVBAの変数に代入
|
7
|
-
④代入された変数を用いて次の処理を行う
|
7
|
+
④代入された変数を用いて次の処理を行う```VBA
|
8
|
+
コード
|
9
|
+
```
|
10
|
+
' 準備シートの関数をコピペ
|
11
|
+
range1 = Workbooks("a.xlsm").Sheets("準備").Range("D1").Value
|
12
|
+
Workbooks("a.xlsm").Sheets("準備").Range("E1:R1").Copy
|
13
|
+
Workbooks("a.xlsm").Sheets("準備").Range("E3:E" & range1 + 2).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks _
|
14
|
+
:=False, Transpose:=False
|
8
15
|
|
16
|
+
' 関数計算
|
17
|
+
Workbooks("a.xlsm").Sheets("準備").Calculate
|
18
|
+
Workbooks("a.xlsm").Sheets("次").Calculate
|
19
|
+
|
20
|
+
' 次シート更新
|
21
|
+
range1 = Workbooks("a.xlsm").Sheets("次").Range("B1").Value
|
22
|
+
Workbooks("a.xlsm").Sheets("次").Range("D20").Copy
|
23
|
+
Workbooks("a.xlsm").Sheets("次").Range("D20:D" & (19 + range1 * 9)).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks _
|
24
|
+
:=False, Transpose:=False
|
25
|
+
|
26
|
+
```
|
27
|
+
|
9
28
|
しかし、③で代入される変数が正しい結果で代入されず、計算途中もしくは計算前のデータで代入されてしまいます。
|
29
|
+
(コードで言う「次シート更新」部分のrange1の値が正しく反映されません。)
|
10
30
|
|
11
31
|
VBAを途中で停止し、続きから再度同じコードを実行すると求めている変数が代入されるので、関数処理が追いついていないのかなと思うのですが、何か解決策はございますでしょうか。
|
12
32
|
|