teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

コードを追加しました。Calculateを追加しても正しく反映されませんでした。

2020/03/14 05:39

投稿

emiri_py
emiri_py

スコア17

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