I am Getting following error while using fragmentContainerview for navhost fragment in main activity - android-studio

i've tried many way to resolve this issue but ploblem still occures for every new project i create in android studio using java i need help to solve this issue
java.lang.RuntimeException: Cycle found (count=51) evaluating 'activity_main' with path 'PathString filesystemUri="file:///F:/" path="F:\AndroidStudio\AndroidProjects\PetrolRequestClient\app\src\main\res\layout\activity_main.xml" startIndex=3 suffixEndIndex=94 prefixEndIndex=3 separator='\'' (parserFiles=file://F:\AndroidStudio\AndroidProjects\PetrolRequestClient\app\src\main\res\layout\activity_main.xml)
at com.android.tools.idea.rendering.LayoutlibCallbackImpl.getParser(LayoutlibCallbackImpl.java:472)
at com.android.tools.idea.rendering.LayoutlibCallbackImpl.getParser(LayoutlibCallbackImpl.java:447)
at com.android.layoutlib.bridge.impl.ResourceHelper.getXmlBlockParser(ResourceHelper.java:321)
at android.content.res.Resources_Delegate.getLayout(Resources_Delegate.java:491)
at android.content.res.Resources.getLayout(Resources.java:1252)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:140)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:204)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1165)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater.inflate(LayoutInflater.java:686)
at android.view.LayoutInflater.inflate(LayoutInflater.java:505)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:359)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:436)
at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:121)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:717)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$9(RenderTask.java:873)
at com.android.tools.idea.rendering.RenderExecutor$runAsyncActionWithTimeout$3.run(RenderExecutor.kt:192)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
i've tried many way to resolve this issue but ploblem still occures for every new project i create in android studio using java i need help to solve this issue

Related

Is there a way to speed up formatting thousands of lines?

I have made the following code which removes the need for a for loop but it still freezes up Excel.
This code essentially will format 8 rows a specific way with borders, number formats, etc. I need to speed this up as I am running this alongside another macro I wrote that works in a reasonable amount of time but adding this formatting messes with something.
Sub Format()
'Borders
Range("A2:F9,G2:I3,G4:I5,G6:I7,G8:I9,J2:V3,J4:V5,J6:V7,J8:V9,W2:W9,X2:AI3,X4:AI5,X6:AI7,X8:AI9,AJ2:AJ9").Select
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
'Format percentages
Range("X3:AI3,X5:AI5,X7:AI7,X9:AI9").Select
Selection.NumberFormat = "0.00%"
Range("F:F,J2:W" & endRow).Select
Selection.NumberFormat = "0"
Range("J1:V1").Select
Selection.NumberFormat = "mmm-yy"
Range("X1:AI1").Select
Selection.NumberFormat = "mmm"
'Text Alignment
Range("A:A,C:C,D:D,F:AJ").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.ReadingOrder = xlContext
End With
Range("A2:AJ9").Copy
Range("A2:AJ" & endRow).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A1,C1,D1,F1:I1,W1,AJ1").EntireColumn.AutoFit
Range("B1").ColumnWidth = 32
Range("E1").ColumnWidth = 40
Range("J1:V1,X1:AI1").ColumnWidth = 7.5
End Sub
The variable endRow is determined elsewhere as this macro is called inside of another.
For simplicity let's assume the endRow = 80,002 (The extra 2 accounts for the headers).
Edit 1:
For clarification there is a header row and then the data to be formatted is below. A few lines of this code modifies the header data so the following is the code without the headers being formatted for clarity on the problem.
Sub Format()
'Borders
Range("A2:F9,G2:I3,G4:I5,G6:I7,G8:I9,J2:V3,J4:V5,J6:V7,J8:V9,W2:W9,X2:AI3,X4:AI5,X6:AI7,X8:AI9,AJ2:AJ9").Select
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
'Format percentages
Range("X3:AI3,X5:AI5,X7:AI7,X9:AI9").Select
Selection.NumberFormat = "0.00%"
Range("F:F,J2:W" & endRow).Select
Selection.NumberFormat = "0"
'Text Alignment
Range("A:A,C:C,D:D,F:AJ").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.ReadingOrder = xlContext
End With
Range("A2:AJ9").Copy
Range("A2:AJ" & endRow).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A1,C1,D1,F1:I1,W1,AJ1").EntireColumn.AutoFit
Range("B1").ColumnWidth = 32
Range("E1").ColumnWidth = 40
Range("J1:V1,X1:AI1").ColumnWidth = 7.5
End Sub
Edit 2:
I tried what Tim Williams suggested but that just causes all cells to have all borders which I do not want.
Edit 3:
This post is getting rather long, but here is what I have come up with that I suspect could be further optimized but I am unsure of as to how that would be accomplished.
Sub Format()
Dim rng As Range
Set rng = Sht.Range("A2:F9,G2:I3,G4:I5,G6:I7,G8:I9,J2:V3,J4:V5,J6:V7,J8:V9,W2:W9,X2:AI3,X4:AI5,X6:AI7,X8:AI9,AJ2:AJ9")
'Borders
With rng.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With rng.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With rng.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With rng.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
'Format percentages
Range("X3:AI3,X5:AI5,X7:AI7,X9:AI9").NumberFormat = "0.00%"
Range("F:F,J2:W" & endRow).NumberFormat = "0"
Range("J1:V1").NumberFormat = "mmm-yy"
Range("X1:AI1").NumberFormat = "mmm"
'Text Alignment
With Range("A:A,C:C,D:D,F:AJ")
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.ReadingOrder = xlContext
End With
Range("A2:AJ9").Copy
Range("A2:AJ" & endRow).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("A1,C1,D1,F1:I1,W1,AJ1").EntireColumn.AutoFit
Range("B1").ColumnWidth = 32
Range("E1").ColumnWidth = 40
Range("J1:V1,X1:AI1").ColumnWidth = 7.5
End Sub
Format Thousands of Lines
Sub Format()
Const EndRow As Long = 80001
Application.ScreenUpdating = False
With ActiveSheet ' improve!
' Borders
With .Range("A2:F9,G2:I3,G4:I5,G6:I7,G8:I9,J2:V3,J4:V5," _
& "J6:V7,J8:V9,W2:W9,X2:AI3,X4:AI5,X6:AI7,X8:AI9,AJ2:AJ9")
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
End With
' Number Formats
.Range("X3:AI3,X5:AI5,X7:AI7,X9:AI9").NumberFormat = "0.00%"
.Range("F1:F9,J2:W9").NumberFormat = "0"
.Range("J1:V1").NumberFormat = "mmm-yy"
.Range("X1:AI1").NumberFormat = "mmm"
' Text Alignment
With .Range("A1:A9,C1:C9,D1:D9,F1:AJ9")
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.ReadingOrder = xlContext
End With
' Copy Down Formats
.Range("A2:AJ9").Copy
.Range("A2:AJ" & EndRow).PasteSpecial Paste:=xlPasteFormats
' Column Widths
.Range("A1,C1,D1,F1:I1,W1,AJ1").EntireColumn.AutoFit
.Range("B1").ColumnWidth = 32
.Range("E1").ColumnWidth = 40
.Range("J1:V1,X1:AI1").ColumnWidth = 7.5
End With
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Argumented
Rewrite the previous sub by adding the worksheet argument.
Sub FormatSheet(ByVal ws As Worksheet)
Const EndRow As Long = 80001
Application.ScreenUpdating = False
With ws
End With
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Finally, call the sub from another sub.
Sub Test()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")
FormatSheet ws
End Sub
Similarly, you could add the EndRow argument...
Sub FormatSheet2(ByVal ws As Worksheet, ByVal EndRow As Long)
End Sub
and call it with e.g.:
FormatSheet2 ws, 80001
create 2 new class modules and call them by whatever name you want, just for the sake of explanation let's call them SettingClass1 and SettingClass2.
On SettingClass1 write the following code:
Option Explicit
Private calculation As XlCalculation
Private displayStatus As Boolean
Private enableEvents As Boolean
Private screenUpdating As Boolean
Public Sub Backup()
calculation = Application.calculation
displayStatus = Application.DisplayStatusBar
enableEvents = Application.enableEvents
screenUpdating = Application.screenUpdating
End Sub
Public Sub Restore()
Application.calculation = calculation
Application.DisplayStatusBar = displayStatus
Application.enableEvents = enableEvents
Application.screenUpdating = screenUpdating
End Sub
Public Sub TurnOff()
Call Backup
Application.calculation = xlCalculationManual
Application.DisplayStatusBar = False
Application.enableEvents = False
Application.screenUpdating = False
End Sub
Public Sub TurnOn()
Application.calculation = xlCalculationAutomatic
Application.DisplayStatusBar = True
Application.enableEvents = True
Application.screenUpdating = True
End Sub
After that on SettingClass2 write the following code:
Option Explicit
Private Interactive As Boolean
Private DisplayAlerts As Boolean
Private AskUpdateLinks As Boolean
Public Sub Backup()
Interactive = Application.Interactive
DisplayAlerts = Application.DisplayAlerts
AskUpdateLinks = Application.AskToUpdateLinks
End Sub
Public Sub Restore()
Application.Interactive = Interactive
Application.DisplayAlerts = DisplayAlerts
Application.AskToUpdateLinks = AskUpdateLinks
End Sub
Public Sub TurnOff()
Call Backup
Application.Interactive = False
Application.DisplayAlerts = False
Application.AskToUpdateLinks = False
End Sub
Public Sub TurnOn()
Application.Interactive = True
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
End Sub
Afterwards edit your code by adding:
Sub Format()
Dim settings As New SettingClass1
Dim settingsAlerts As New SettingClass2
settings.TurnOff
settingsAlerts.TurnOff
'Borders
Then at the end of your code add:
Range("J1:V1,X1:AI1").ColumnWidth = 7.5
settings.TurnOn
settingsAlerts.TurnOn
End Sub
I have noticed that in your code sht isn't declared or set anywhere, and also endRow.
So I wrote the code declaring sht as a worksheet and endRow as a Long, however you need to set sht and assign a value to endRow.
You can also optimize further your code by changing it like this:
Sub Format()
Dim settings As New SettingClass1
Dim settingsAlerts As New SettingClass2
settings.TurnOff
settingsAlerts.TurnOff
Dim rng As Range
Dim area As Variant
Dim sht As Worksheet
Dim endRow as Long
'Code here to set the worksheet sht
'Set sht = '''whatever you need to write here to set the worksheet
'Code here to assign a value to endRow
'endRow = '''whatever you need to write here to assign the appropiate value to endRow
Set rng = sht.Range("A2:F9,G2:I3,G4:I5,G6:I7,G8:I9,J2:V3,J4:V5,J6:V7,J8:V9,W2:W9,X2:AI3,X4:AI5,X6:AI7,X8:AI9,AJ2:AJ9")
'Borders
For Each area In rng.areas
With area
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
End With
Next area
'Format percentages
With sht
Set rng = .Range("X3:AI3,X5:AI5,X7:AI7,X9:AI9")
For Each area In rng.areas
With area
.NumberFormat = "0.00%"
End With
Next area
Set rng = .Range("F:F,J2:W" & endRow)
For Each area In rng.areas
With area
.NumberFormat = "0"
End With
Next area
.Range("J1:V1").NumberFormat = "mmm-yy"
.Range("X1:AI1").NumberFormat = "mmm"
'Text Alignment
Set rng = .Range("A:A,C:C,D:D,F:AJ")
For Each area In rng.areas
With area
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.ReadingOrder = xlContext
End With
Next area
.Range("A2:AJ9").Copy
.Range("A2:AJ" & endRow).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Set rng = .Range("A1,C1,D1,F1:I1,W1,AJ1")
For Each area In rng.areas
With area
.EntireColumn.AutoFit
End With
Next area
.Range("B1").ColumnWidth = 32
.Range("E1").ColumnWidth = 40
Set rng = .Range("J1:V1,X1:AI1")
For Each area In rng.areas
With area
.ColumnWidth = 7.5
End With
Next area
End With
settings.TurnOn
settingsAlerts.TurnOn
End Sub
Let me know how this works for you.
UPDATE:
You can call functions and subs by using the following functions, choose carefully if you need to run a sub, a function that returns a variable which can be stored in a variant, or a variable that needs to be stored on an object.
The optional arguments can only be variants, not objects, so you can't pass a worksheet as argument.
wbk should be set to be the workbook where the macro you want to run is located, MacroName should be the name of the function/sub that you want to run.
It will not work if the workbook is located on OneDrive, if such is the case I can modify the provided functions to work also if the workbook is located on the OneDrive.
Public Function RunFunctionObject(wbk As Workbook, MacroName As String, Optional Arg1 As Variant = "", _
Optional Arg2 As Variant = "", Optional Arg3 As Variant = "", Optional Arg4 As Variant = "", Optional Arg5 As Variant = "", _
Optional Arg6 As Variant = "", Optional Arg7 As Variant = "", Optional Arg8 As Variant = "", Optional Arg9 As Variant = "", _
Optional Arg10 As Variant = "", Optional Arg11 As Variant = "", Optional Arg12 As Variant = "", Optional Arg13 As Variant = "", _
Optional Arg14 As Variant = "", Optional Arg15 As Variant = "", Optional Arg16 As Variant = "", Optional Arg17 As Variant = "", _
Optional Arg18 As Variant = "", Optional Arg19 As Variant = "", Optional Arg20 As Variant = "", Optional Arg21 As Variant = "", _
Optional Arg22 As Variant = "", Optional Arg23 As Variant = "", Optional Arg24 As Variant = "", Optional Arg25 As Variant = "", _
Optional Arg26 As Variant = "", Optional Arg27 As Variant = "", Optional Arg28 As Variant = "", Optional Arg29 As Variant = "", _
Optional Arg30 As Variant = "") As Object
'RunFunctionObject executes the function named MacroName which is found on the workbook Wbk _
' and returns the functions RETURN object
Dim MacroString As String
MacroString = "'" & wbk.Path & Application.PathSeparator & wbk.name & "'!" & MacroName
If Arg1 = "" Then
Set RunFunctionObject = Application.Run(MacroString)
ElseIf Arg2 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1)
ElseIf Arg3 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2)
ElseIf Arg4 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3)
ElseIf Arg5 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4)
ElseIf Arg6 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg5)
ElseIf Arg7 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6)
ElseIf Arg8 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7)
ElseIf Arg9 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8)
ElseIf Arg10 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9)
ElseIf Arg11 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10)
ElseIf Arg12 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11)
ElseIf Arg13 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12)
ElseIf Arg14 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13)
ElseIf Arg15 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14)
ElseIf Arg16 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15)
ElseIf Arg17 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16)
ElseIf Arg18 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17)
ElseIf Arg19 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18)
ElseIf Arg20 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19)
ElseIf Arg21 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20)
ElseIf Arg22 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21)
ElseIf Arg23 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22)
ElseIf Arg24 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23)
ElseIf Arg25 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24)
ElseIf Arg26 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25)
ElseIf Arg27 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26)
ElseIf Arg28 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27)
ElseIf Arg29 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28)
ElseIf Arg30 = "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29)
ElseIf Arg30 <> "" Then
Set RunFunctionObject = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30)
End If
End Function
Public Function RunFunctionVariant(wbk As Workbook, MacroName As String, Optional Arg1 As Variant = "", _
Optional Arg2 As Variant = "", Optional Arg3 As Variant = "", Optional Arg4 As Variant = "", Optional Arg5 As Variant = "", _
Optional Arg6 As Variant = "", Optional Arg7 As Variant = "", Optional Arg8 As Variant = "", Optional Arg9 As Variant = "", _
Optional Arg10 As Variant = "", Optional Arg11 As Variant = "", Optional Arg12 As Variant = "", Optional Arg13 As Variant = "", _
Optional Arg14 As Variant = "", Optional Arg15 As Variant = "", Optional Arg16 As Variant = "", Optional Arg17 As Variant = "", _
Optional Arg18 As Variant = "", Optional Arg19 As Variant = "", Optional Arg20 As Variant = "", Optional Arg21 As Variant = "", _
Optional Arg22 As Variant = "", Optional Arg23 As Variant = "", Optional Arg24 As Variant = "", Optional Arg25 As Variant = "", _
Optional Arg26 As Variant = "", Optional Arg27 As Variant = "", Optional Arg28 As Variant = "", Optional Arg29 As Variant = "", _
Optional Arg30 As Variant = "") As Variant
'RunFunctionVariant executes the function named MacroName which is found on the workbook Wbk _
' and returns the functions RETURN variable
Dim MacroString As String
MacroString = "'" & wbk.Path & Application.PathSeparator & wbk.name & "'!" & MacroName
If Arg1 = "" Then
RunFunctionVariant = Application.Run(MacroString)
ElseIf Arg2 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1)
ElseIf Arg3 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2)
ElseIf Arg4 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3)
ElseIf Arg5 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4)
ElseIf Arg6 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg5)
ElseIf Arg7 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6)
ElseIf Arg8 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7)
ElseIf Arg9 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8)
ElseIf Arg10 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9)
ElseIf Arg11 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10)
ElseIf Arg12 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11)
ElseIf Arg13 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12)
ElseIf Arg14 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13)
ElseIf Arg15 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14)
ElseIf Arg16 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15)
ElseIf Arg17 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16)
ElseIf Arg18 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17)
ElseIf Arg19 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18)
ElseIf Arg20 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19)
ElseIf Arg21 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20)
ElseIf Arg22 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21)
ElseIf Arg23 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22)
ElseIf Arg24 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23)
ElseIf Arg25 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24)
ElseIf Arg26 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25)
ElseIf Arg27 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26)
ElseIf Arg28 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27)
ElseIf Arg29 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28)
ElseIf Arg30 = "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29)
ElseIf Arg30 <> "" Then
RunFunctionVariant = Application.Run(MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30)
End If
End Function
Public Sub RunSub(wbk As Workbook, MacroName As String, Optional Arg1 As Variant = "", _
Optional Arg2 As Variant = "", Optional Arg3 As Variant = "", Optional Arg4 As Variant = "", Optional Arg5 As Variant = "", _
Optional Arg6 As Variant = "", Optional Arg7 As Variant = "", Optional Arg8 As Variant = "", Optional Arg9 As Variant = "", _
Optional Arg10 As Variant = "", Optional Arg11 As Variant = "", Optional Arg12 As Variant = "", Optional Arg13 As Variant = "", _
Optional Arg14 As Variant = "", Optional Arg15 As Variant = "", Optional Arg16 As Variant = "", Optional Arg17 As Variant = "", _
Optional Arg18 As Variant = "", Optional Arg19 As Variant = "", Optional Arg20 As Variant = "", Optional Arg21 As Variant = "", _
Optional Arg22 As Variant = "", Optional Arg23 As Variant = "", Optional Arg24 As Variant = "", Optional Arg25 As Variant = "", _
Optional Arg26 As Variant = "", Optional Arg27 As Variant = "", Optional Arg28 As Variant = "", Optional Arg29 As Variant = "", _
Optional Arg30 As Variant = "")
'RunSub executes the sub named MacroName which is found on the workbook Wbk
Dim MacroString As String
MacroString = "'" & wbk.Path & Application.PathSeparator & wbk.name & "'!" & MacroName
If Arg1 = "" Then
Application.Run MacroString
ElseIf Arg2 = "" Then
Application.Run MacroString, Arg1
ElseIf Arg3 = "" Then
Application.Run MacroString, Arg1, Arg2
ElseIf Arg4 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3
ElseIf Arg5 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4
ElseIf Arg6 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg5
ElseIf Arg7 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6
ElseIf Arg8 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7
ElseIf Arg9 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8
ElseIf Arg10 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9
ElseIf Arg11 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10
ElseIf Arg12 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11
ElseIf Arg13 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12
ElseIf Arg14 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13
ElseIf Arg15 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14
ElseIf Arg16 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15
ElseIf Arg17 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16
ElseIf Arg18 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17
ElseIf Arg19 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18
ElseIf Arg20 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19
ElseIf Arg21 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20
ElseIf Arg22 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21
ElseIf Arg23 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22
ElseIf Arg24 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23
ElseIf Arg25 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24
ElseIf Arg26 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25
ElseIf Arg27 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26
ElseIf Arg28 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27
ElseIf Arg29 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28
ElseIf Arg30 = "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29
ElseIf Arg30 <> "" Then
Application.Run MacroString, Arg1, Arg2, Arg3, Arg4, Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, _
Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30
End If
End Sub
IMPORTANT!!:
If you're turning sreenupdating to false and then back to true in the overarching code, THEN you should declare and define the settings and settingsAlerts on the overarching code instead of doing it inside the Format() sub like I did here.
The turning off of the settings and settingsAlerts will extremely speed up your code.
Furthermore, by treating each different area separately the way I did using the For each loops, the speed is greatly improved on your code.
Using the With statements will also help speed up the code because the compiler will need to interpret less code.
I hope all of this was informative and helpfull to you.
Let me know how this will work out.
I found a solution that has been inspired by many of the comments and other answers in this thread. I hope it will help any further viewers of this thread.
Private Sub Format()
Dim rng As Range
Set rng = Sht.Range("A2:F9,G2:I3,G4:I5,G6:I7,G8:I9,J2:V3,J4:V5,J6:V7,J8:V9,W2:W9,X2:AI3,X4:AI5,X6:AI7,X8:AI9,AJ2:AJ9")
With Sht
'Borders
With rng.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With rng.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With rng.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With rng.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
'Format percentages
.Range("X3:AI3,X5:AI5,X7:AI7,X9:AI9").NumberFormat = "0.00%"
.Range("F:F,J2:W" & endRow).NumberFormat = "0"
.Range("J1:V1").NumberFormat = "mmm-yy"
.Range("X1:AI1").NumberFormat = "mmm"
'Text Alignment
With .Range("A:A,C:C,D:D,F:AJ")
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.ReadingOrder = xlContext
End With
.Range("A2:AJ9").Copy
.Range("A2:AJ" & endRow).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Range("A1,C1,D1,F1:I1,W1,AJ1").EntireColumn.AutoFit
.Range("B1").ColumnWidth = 32
.Range("E1").ColumnWidth = 40
.Range("J1:V1,X1:AI1").ColumnWidth = 7.5
End With
End Sub
Most of this is very specific to my situation though so this may not be the most helpful to others but I digress.

PDDL task help. Error message. Syntax error

I have this task:
16 compartments containing 3 red and 3 black balls are given as shown in the figure below.
Rearrange the balls so that the three red balls next to each other are directly followed by the black balls!
Two adjacent balls can be picked up from their compartment at the same time and moved to two adjacent compartments while maintaining their order.
PFPFPF__________
I have deduced a possible solution, but I get an error message like this:
/tmp/solver_planning_domains_tmp_41C20mfKR69ZM/domain.pddl: syntax error in line 110, '(':
domain definition expected.
Here is my solution, but i know there is a better, so i accept any help! Thanks!
;;;
(define (problem ball)
(:domain ball)
(:objects vp vp vp vf vf vf)
(:init
(at vp pos1)
(at vf pos2)
(at vp pos3)
(at vf pos4)
(at vp pos5)
(at vf pos6)
(clear pos7)
(clear pos8)
(clear pos9)
(clear pos10)
(clear pos11)
(clear pos12)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16)
)
(:goal (and
(clear pos1)
(clear pos2)
(clear pos3)
(clear pos4)
(clear pos5)
(clear pos6)
(clear pos7)
(clear pos8)
(at vp pos9)
(at vp pos10)
(at vp pos11)
(at vf pos12)
(at vf pos13)
(at vf pos14)
(clear pos15)
(clear pos16)
))
)
(define (domain ball)
(:requirements :strips)
(:predicates (pos1 ?v)
(pos2 ?v)
(pos3 ?v)
(pos4 ?v)
(pos5 ?v)
(pos6 ?v)
(pos7 ?v)
(pos8 ?v)
(pos9 ?v)
(pos10 ?v)
(pos11 ?v)
(pos12 ?v)
(pos13 ?v)
(pos14 ?v)
(pos15 ?v)
(pos16 ?v))
; _______ _______
; P F P F P F_ _ _ _ _ _ _ _ _ _ ---> P F P F _ _PF _ _ _ _ _ _ _ _
;
(:action move1
:parameters (?vp ?vp ?vp ?vf ?vf ?vf)
:precondition (and (pos1 ?vp)
(pos2 ?vP)
(pos3 ?vp)
(pos4 ?vf)
(pos5 ?vF)
(pos6 ?vf)
(clear pos7)
(clear pos8)
(clear pos9)
(clear pos10)
(clear pos11)
(clear pos12)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16)
)
:effect (and
(pos1 ?vp)
(pos2 ?vp)
(pos3 ?vp)
(pos4 ?vf)
(clear pos5)
(clear pos6)
(pos7 ?vp)
(pos8 ?vf)
(not (pos5 ?vp))
(not (pos6 ?vf))
(clear pos9)
(clear pos10)
(clear pos11)
(clear pos12)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16))
)
; P F P F _ _PF _ _ _ _ _ _ _ _ - - -> P _ _ F _ _P F F P _ _ _ _ _ _
(:action move2
:parameters (?vp ?vp ?vp ?vf ?vf ?vf)
:precondition (and (pos1 ?vp)
(pos2 ?vP)
(pos3 ?vp)
(pos4 ?vf)
(clear pos5)
(clear pos6)
(pos7 ?vp)
(pos8 ?vf)
(clear pos9)
(clear pos10)
(clear pos11)
(clear pos12)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16)
)
:effect (and
(pos1 ?vp)
(clear pos2)
(clear pos3)
(pos4 ?vf)
(clear pos5)
(clear pos6)
(pos7 ?vp)
(pos8 ?vf)
(pos9 ?vf)
(pos10 ?vp)
(clear pos11)
(clear pos12)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16)
(not (pos2 ?vf))
(not (pos3 ?vp))
(not (clear pos9))
(not (clear pos10))
)
; P _ _ F _ _ P F F P _ _ _ _ _ _ ---> P P F F _ _ _ _ F P _ _ _ _ _ _
(:action move3
:parameters (?vp ?vp ?vp ?vf ?vf ?vf)
:precondition (and (pos1 ?vp)
(clear pos2)
(clear pos3)
(pos4 ?vf)
(clear pos5)
(clear pos6)
(pos7 ?vp)
(pos8 ?vf)
(pos9 ?vf)
(pos10 ?vp)
(clear pos11)
(clear pos12)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16)
)
:effect (and
(pos1 ?vp)
(pos2 ?vp)
(pos3 ?vf)
(pos4 ?vf)
(clear pos5)
(clear pos6)
(clear pos7)
(clear pos8)
(pos9 ?vf)
(pos10 ?vp)
(clear pos11)
(clear pos12)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16)
(not (clear pos2))
(not (clear pos3))
(not (pos7 ?vp))
(not (pos8 ?vf))
)
; P P F F _ _ _ _ F P _ _ _ _ _ _ ---> P P _ _ _ _ _ _ F P F F _ _ _ _
(:action move4
:parameters (?vp ?vp ?vp ?vf ?vf ?vf)
:precondition (and (pos1 ?vp)
(pos2 ?vP)
(pos3 ?vf)
(pos4 ?vf)
(clear pos5)
(pos6 ?vf)
(clear pos7)
(clear pos8)
(pos9 ?vf)
(pos10 ?vp)
(clear pos11)
(clear pos12)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16)
)
:effect (and
(pos1 ?vp)
(pos2 ?vp)
(clear pos3)
(clear pos4)
(clear pos5)
(clear pos6)
(clear pos7)
(clear pos8)
(pos9 ?vf)
(pos10 ?vp)
(pos11 ?vf)
(pos12 ? vf)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16)
(not (pos3 ?vf))
(not (pos4 ?vf))
(not (clear pos11))
(not (clear pos12))
)
; P P _ _ _ _ _ _ F P F F _ _ _ _ ---> P P _ _ _ _ P F F _ _ F _ _ _ _
(:action move5
:parameters (?vp ?vp ?vp ?vf ?vf ?vf)
:precondition (and (pos1 ?vp)
(pos2 ?vP)
(clear pos3)
(clear pos4)
(clear pos5)
(clear pos6)
(clear pos7)
(clear pos8)
(pos9 ?vf)
(pos10 ?vp)
(pos11 ?vf)
(pos12 ?vf)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16)
)
:effect (and
(pos1 ?vp)
(pos2 ?vp)
(clear pos3)
(clear pos4)
(clear pos5)
(clear pos6)
(pos7 ?vp)
(pos8 ?vf)
(pos9 ?vf)
(clear pos10)
(clear pos11)
(pos12 ? vf)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16)
(not (pos10 ?vp))
(not (pos11 ?vf))
(not (clear pos7))
(not (clear pos8))
)
; P P _ _ _ _ P F F _ _ F _ _ _ _ ---> _ _ _ _ _ _ P F F P P F _ _ _ _
(:action move6
:parameters (?vp ?vp ?vp ?vf ?vf ?vf)
:precondition (and (pos1 ?vp)
(pos2 ?vP)
(clear pos3)
(clear pos4)
(clear pos5)
(clear pos6)
(pos7 ?vp)
(pos8 ?vf)
(pos9 ?vf)
(clear pos10)
(clear pos11)
(pos12 ?vf)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16)
)
:effect (and
(clear pos1)
(clear pos2)
(clear pos3)
(clear pos4)
(clear pos5)
(clear pos6)
(pos7 ?vp)
(pos8 ?vf)
(pos9 ?vf)
(pos10 ?vp)
(pos11 ?vp)
(pos12 ? vf)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16)
(not (pos1 ?vp))
(not (pos2 ?vp))
(not (clear pos10))
(not (clear pos11))
)
; _ _ _ _ _ _ P F F P P F _ _ _ _ ---> _ _ P P _ _ P F F _ _ F _ _ _ _
(:action move7
:parameters (?vp ?vp ?vp ?vf ?vf ?vf)
:precondition (and (clear pos1)
(clear pos2)
(clear pos3)
(clear pos4)
(clear pos5)
(clear pos6)
(pos7 ?vp)
(pos8 ?vf)
(pos9 ?vf)
(pos10 ?vp)
(pos11 ?vp)
(pos12 ?vf)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16)
)
:effect (and
(clear pos1)
(clear pos2)
(pos3 ?vp)
(pos4 ?vp)
(clear pos5)
(clear pos6)
(pos7 ?vp)
(pos8 ?vf)
(pos9 ?vf)
(clear pos10)
(clear pos11)
(pos12 ? vf)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16)
(not (pos10 ?vp))
(not (pos11 ?vp))
(not (clear 3))
(not (clear 4))
)
; _ _ P P _ _ P F F _ _ F _ _ _ _ ---> _ _P P F F P _ _ _ _ F _ _ _ _
(:action move8
:parameters (?vp ?vp ?vp ?vf ?vf ?vf)
:precondition (and (clear pos1)
(clear pos2)
(pos3 ?vp)
(pos4 ?vp)
(clear pos5)
(clear pos6)
(pos7 ?vp)
(pos8 ?vf)
(pos9 ?vf)
(clear pos10)
(clear pos11)
(pos12 ?vf)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16)
)
:effect (and
(clear pos1)
(clear pos2)
(pos3 ?vp)
(pos4 ?vp)
(pos5 ?vf)
(pos6 ?vf)
(pos7 ?vp)
(clear pos8)
(clear pos9)
(clear pos10)
(clear pos11)
(pos12 ? vf)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16)
(not (pos8 ?vf))
(not (pos9 ?vf))
(not (clear 5))
(not (clear 6))
)
; ---> _ _P P F F P _ _ _ _ F _ _ _ _ ---> _ _ P P _ _ P _ _ _ _ F F F _ _
(:action move9
:parameters (?vp ?vp ?vp ?vf ?vf ?vf)
:precondition (and (clear pos1)
(clear pos2)
(pos3 ?vp)
(pos4 ?vp)
(pos5 ?vF)
(pos6 ?vf)
(pos7 ?vp)
(clear pos8)
(clear pos9)
(clear pos10)
(clear pos11)
(pos12 ?vf)
(clear pos13)
(clear pos14)
(clear pos15)
(clear pos16)
)
:effect (and
(clear pos1)
(clear pos2)
(pos3 ?vp)
(pos4 ?vp)
(clear pos5)
(clear pos6)
(pos7 ?vp)
(clear pos8)
(clear pos9)
(clear pos10)
(clear pos11)
(pos12 ?vf)
(pos13 ?vf)
(pos14 ?vf)
(clear pos15)
(clear pos16)
(not (pos5 ?vf))
(not (pos6 ?vf))
(not (clear 13))
(not (clear 14))
)
; ---> _ _ P P _ _ P _ _ _ _ F F F _ _ ---> _ _ _ _ P P P _ _ _ _ F F F _ _
(:action move10
:parameters (?vp ?vp ?vp ?vf ?vf ?vf)
:precondition (and (clear pos1)
(clear pos2)
(pos3 ?vp)
(pos4 ?vp)
(clear pos5)
(clear pos6)
(pos7 ?vp)
(clear pos8)
(clear pos9)
(clear pos10)
(clear pos11)
(pos12 ?vf)
(pos13 ?vf)
(pos14 ?vf)
(clear pos15)
(clear pos16)
)
:effect (and
(clear pos1)
(clear pos2)
(clear pos3)
(clear pos4)
(pos5 ?vp)
(pos6 ?vp)
(pos7 ?vp)
(clear pos8)
(clear pos9)
(clear pos10)
(clear pos11)
(pos12 ?vf)
(pos13 ?vf)
(pos14 ?vf)
(clear pos15)
(clear pos16)
(not (pos3 ?vp))
(not (pos4 ?vp))
(not (clear 5))
(not (clear 6))
)
; _ _ _ _ P P P _ _ _ _ F F F _ _ ---> _ _ _ _ _ _ P P P _ _ F F F _ _
(:action move11
:parameters (?vp ?vp ?vp ?vf ?vf ?vf)
:precondition (and (clear pos1)
(clear pos2)
(clear pos3)
(clear pos4)
(pos5 ?vp)
(pos6 ?vp)
(pos7 ?vp)
(clear pos8)
(clear pos9)
(clear pos10)
(clear pos11)
(pos12 ?vf)
(pos13 ?vf)
(pos14 ?vf)
(clear pos15)
(clear pos16)
)
:effect (and
(clear pos1)
(clear pos2)
(clear pos3)
(clear pos4)
(clear pos5)
(clear pos6)
(pos7 ?vp)
(pos8 ?vp)
(pos9 ?vp)
(clear pos10)
(clear pos11)
(pos12 ?vf)
(pos13 ?vf)
(pos14 ?vf)
(clear pos15)
(clear pos16)
(not (pos5 ?vp))
(not (pos6 ?vp))
(not (clear 8))
(not (clear 9))
)
; _ _ _ _ _ _ P P P _ _ F F F _ _ ---> _ _ _ _ _ _ _ _ P P P F F F _ _
(:action move12
:parameters (?vp ?vp ?vp ?vf ?vf ?vf)
:precondition (and (clear pos1)
(clear pos2)
(clear pos3)
(clear pos4)
(clear pos5)
(clear pos6)
(pos7 ?vp)
(pos8 ?vp)
(pos9 ?vp)
(clear pos10)
(clear pos11)
(pos12 ?vf)
(pos13 ?vf)
(pos14 ?vf)
(clear pos15)
(clear pos16)
)
:effect (and
(clear pos1)
(clear pos2)
(clear pos3)
(clear pos4)
(clear pos5)
(clear pos6)
(clear pos7)
(clear pos8)
(pos9 ?vp)
(pos10 ?vp)
(pos11 ?vp)
(pos12 ?vf)
(pos13 ?vf)
(pos14 ?vf)
(clear pos15)
(clear pos16)
(not (pos7 ?vp))
(not (pos8 ?vp))
(not (clear 10))
(not (clear 11))
)
You are missing parentheses to close the (domain ...) statement.

Using GetMem and VarPtr to get around Object default values [duplicate]

This question already has answers here:
How can I assign a Variant to a Variant in VBA?
(5 answers)
Closed 3 years ago.
So I'm making a funky VBA class for callback objects. Currently one of the issues is that when returning data from the function's call method I have to run the method twice, one to determine the variable type and another to return the variable:
If VarType(Application.Run(Callback("Parent") & "." & Callback("Name"), args(0), args(1), args(2), args(3), args(4), args(5), args(6), args(7), args(8), args(9), args(10), args(11), args(12), args(13), args(14), args(15), args(16), args(17), args(18), args(19), args(20), args(21), args(22), args(23), args(24), args(25), args(26), args(27), args(28), args(29))) = vbObject Then
Set CallCallback = Application.Run( _
Callback("Parent") & "." & Callback("Name"), _
args(0), args(1), _
args(2), args(3), _
args(4), args(5), _
args(6), args(7), _
args(8), args(9), _
args(10), args(11), _
args(12), args(13), _
args(14), args(15), _
args(16), args(17), _
args(18), args(19), _
args(20), args(21), _
args(22), args(23), _
args(24), args(25), _
args(26), args(27), _
args(28), args(29))
Else
CallCallback = Application.Run( _
Callback("Parent") & "." & Callback("Name"), _
args(0), args(1), _
args(2), args(3), _
args(4), args(5), _
args(6), args(7), _
args(8), args(9), _
args(10), args(11), _
args(12), args(13), _
args(14), args(15), _
args(16), args(17), _
args(18), args(19), _
args(20), args(21), _
args(22), args(23), _
args(24), args(25), _
args(26), args(27), _
args(28), args(29))
End If
Recently I figured that I might be able to do this without calling the VBA function multiple times by dereferencing the result using VarPtr and then using GetMem4:
Private Declare Function GetMem4 Lib "msvbvm60.dll" (ByVal Addr As Long, ByRef RetVal As Any) As Long
...
Dim vp As LongPtr, vRet as Variant
vp = VarPtr(Application.Run(Callback("Parent") & "." & Callback("Name"), args(0), args(1), args(2), args(3), args(4), args(5), args(6), args(7), args(8), args(9), args(10), args(11), args(12), args(13), args(14), args(15), args(16), args(17), args(18), args(19), args(20), args(21), args(22), args(23), args(24), args(25), args(26), args(27), args(28), args(29)))
Call GetMem4(vp, vRet)
This specific example didn't work but I was wondering whether there was an obvious reason as to why this didn't work?
Any ideas?
I asked the question to vbforums also and they got there much faster than stackoverflow!
The solution is extremely simple:
Public Declare Sub VariantCopy Lib "oleaut32.dll" (ByRef pvargDest As Variant, ByRef pvargSrc As Variant)
...
VariantCopy CallCallback, Application.Run( _
Callback("Parent") & "." & Callback("Name"), _
args(0), args(1), _
args(2), args(3), _
args(4), args(5), _
args(6), args(7), _
args(8), args(9), _
args(10), args(11), _
args(12), args(13), _
args(14), args(15), _
args(16), args(17), _
args(18), args(19), _
args(20), args(21), _
args(22), args(23), _
args(24), args(25), _
args(26), args(27), _
args(28), args(29))
Simple!

Excel VBA If Else

Sorry for the way i posted this question earlier and in a way i was confused with where to type the question so that it's separate from the code.
I have the code below in excel VBA. I'm trying to compare the string values in excel sheet with the String value in VBA.If a match is found,a 2 should be entered in cell ni where i is the cell position as per the looop else, x should be entered.The problem is in the if condition part,the truth condition is skipped and instead the else condition is executed which gives me wrong results.Despite checking in all forums on google since yesterday noon and tweaking it in all manner,i've not gotten a solution yet..i'm a newbie in VBA as well
Sub outcome2()
Dim LastRow As Long, i As Long
LastRow = Cells(Rows.Count, "H").End(xlUp).Row
For i = 1 To LastRow
Dim stor1 As Integer
Dim stor2 As String
Dim stor3 As String
Dim stor4 As String
Dim stor5 As String
Dim stor6 As String
Dim stor7 As String
Dim stor8 As String
Dim stor9 As String
Dim stor10 As String
Dim stor11 As String
Dim stor12 As String
Dim stor13 As String
Dim stor14 As String
Dim stor15 As String
Dim stor16 As String
Dim stor17 As String
Dim stor18 As String
Dim stor19 As String
Dim stor20 As String
Dim stor21 As String
Dim stor22 As String
Dim stor23 As String
Dim stor24 As String
Dim stor25 As String
Dim stor26 As String
Dim stor27 As String
Dim stor28 As String
stor1 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "fair") And InStr(Range("l" & i).Value2, "null") And InStr(Range("m" & i).Value2, "poor")
stor2 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "fair") And InStr(Range("l" & i).Value2, "null") And InStr(Range("m" & i).Value2, "fair")
stor3 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "fair") And InStr(Range("l" & i).Value2, "nul") And InStr(Range("m" & i).Value2, "good")
stor4 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "fair") And InStr(Range("l" & i).Value2, "nul") And InStr(Range("m" & i).Value2, "null")
stor5 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "good") And InStr(Range("l" & i).Value2, "no ") And InStr(Range("m" & i).Value2, "poor")
stor6 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "good") And InStr(Range("l" & i).Value2, "no ") And InStr(Range("m" & i).Value2, "fair")
stor7 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "good") And InStr(Range("l" & i).Value2, "no ") And InStr(Range("m" & i).Value2, "good")
stor8 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "good") And InStr(Range("l" & i).Value2, "no ") And InStr(Range("m" & i).Value2, "null")
stor9 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "good") And InStr(Range("l" & i).Value2, "yes") And InStr(Range("m" & i).Value2, "poor")
stor10 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "good") And InStr(Range("l" & i).Value2, "yes") And InStr(Range("m" & i).Value2, "fair")
stor11 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "good") And InStr(Range("l" & i).Value2, "yes") And InStr(Range("m" & i).Value2, "good")
stor12 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "good") And InStr(Range("l" & i).Value2, "yes") And InStr(Range("m" & i).Value2, "null")
stor13 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "good") And InStr(Range("l" & i).Value2, "nul") And InStr(Range("m" & i).Value2, "poor")
stor14 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "good") And InStr(Range("l" & i).Value2, "nul") And InStr(Range("m" & i).Value2, "fair")
stor15 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "good") And InStr(Range("l" & i).Value2, "nul") And InStr(Range("m" & i).Value2, "good")
stor16 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "good") And InStr(Range("l" & i).Value2, "nul") And InStr(Range("m" & i).Value2, "null")
stor17 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "null") And InStr(Range("l" & i).Value2, "no ") And InStr(Range("m" & i).Value2, "poor")
stor18 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "null") And InStr(Range("l" & i).Value2, "no ") And InStr(Range("m" & i).Value2, "fair")
stor19 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "null") And InStr(Range("l" & i).Value2, "no ") And InStr(Range("m" & i).Value2, "good")
stor20 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "null") And InStr(Range("l" & i).Value2, "no ") And InStr(Range("m" & i).Value2, "null")
stor21 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "null") And InStr(Range("l" & i).Value2, "yes") And InStr(Range("m" & i).Value2, "poor")
stor22 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "null") And InStr(Range("l" & i).Value2, "yes") And InStr(Range("m" & i).Value2, "fair")
stor23 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "null") And InStr(Range("l" & i).Value2, "yes") And InStr(Range("m" & i).Value2, "good")
stor24 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "null") And InStr(Range("l" & i).Value2, "yes") And InStr(Range("m" & i).Value2, "null")
stor25 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "null") And InStr(Range("l" & i).Value2, "nul") And InStr(Range("m" & i).Value2, "poor")
stor26 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "null") And InStr(Range("l" & i).Value2, "nul") And InStr(Range("m" & i).Value2, "fair")
stor27 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "null") And InStr(Range("l" & i).Value2, "nul") And InStr(Range("m" & i).Value2, "good")
stor28 = InStr(Range("H" & i).Value2, "classified paved") And InStr(Range("i" & i).Value2, "null") And InStr(Range("j" & i).Value2, "no-side") And InStr(Range("k" & i).Value2, "null") And InStr(Range("l" & i).Value2, "nul") And InStr(Range("m" & i).Value2, "null")
If stor1 > 0 Then
Range("n" & i).Value2 = "2"
Else
Range("P" & i).Value2 = "x"
End If
Next i
End Sub
The issue is in wrong usage of variable types, you've defined stor1 as integer, but further, to stor1 the Boolean value was assigned, and of course it converted into integer (false into 0, true into -1). That is why you can't achieve ... If stor1 > 0 Then ... condition, stor1 will be always less or equal to 0.
Test below:
change you variable types to Boolean, and use ... If stor1 Then ...
Also, pay attention on defining of the variables inside loop, it is a bad practice.
Below is the code from previous version of post (example), I think it will be more readable and more flexible to achieve what you need with less rows of code:
Sub outcome123()
Dim vStr$, cl As Range
Dim rng As Range: Set rng = Range([H1], Cells(Rows.Count, "H").End(xlUp))
For Each cl In rng
vStr = LCase(cl.Value2 & "|" & _
Range("i" & cl.Row).Value2 & "|" & _
Range("j" & cl.Row).Value2 & "|" & _
Range("k" & cl.Row).Value2 & "|" & _
Range("l" & cl.Row).Value2 & "|" & _
Range("m" & cl.Row).Value2)
If vStr Like "*earth*|*none*|*both sides*|*poor*|*no*|*poor*" Then
Range("n" & cl.Row).Value2 = "5"
Else
Range("n" & cl.Row).Value2 = "X"
End If
Next cl
End Sub

How to shorten the length of my cell reference code using a loop in VBA?

Here's my VBA code about a Nonlinear Solver:
Sub solver_macro()
SolverOk SetCell:="$H$1", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$2:$E$33", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$F$5", Relation:=2, FormulaText:="$G$5"
SolverAdd CellRef:="$F$9", Relation:=2, FormulaText:="$G$9"
SolverAdd CellRef:="$F$13", Relation:=2, FormulaText:="$G$13"
SolverAdd CellRef:="$F$17", Relation:=2, FormulaText:="$G$17"
SolverAdd CellRef:="$F$21", Relation:=2, FormulaText:="$G$21"
SolverAdd CellRef:="$F$25", Relation:=2, FormulaText:="$G$25"
SolverAdd CellRef:="$F$29", Relation:=2, FormulaText:="$G$29"
SolverAdd CellRef:="$F$33", Relation:=2, FormulaText:="$G$33"
SolverOk SetCell:="$H$1", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$2:$E$33", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="$H$1", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$2:$E$33", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve
End Sub
I'm trying to include a for-loop in the code above. My first try:
Sub solver_macro()
Dim i As Integer
Dim PERIOD As Integer
PERIOD = 7
SolverOk SetCell:="$H$1", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$2:$E$33", _
Engine:=1, EngineDesc:="GRG Nonlinear"
For i = 0 To PERIOD
SolverAdd CellRef:="$F$5+4*i", Relation:=2, FormulaText:="$G$5+4*i"
Next i
SolverOk SetCell:="$H$1", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$2:$5+4*PERIOD", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="$H$1", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$2:$5+4*PERIOD", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve
End Sub
Could you help me correcting this loop, please? Thank you in advance!
Edit: Thank you for the answers. How can I do the same if I want to loop with letters instead of numbers?
Still the same code, but the data is horizontal. Therefore, the loop goes through the letters (columns) instead of numbers (rows) :
SolverAdd CellRef:="$G$88", Relation:=2, FormulaText:="$G$89"
SolverAdd CellRef:="$K$88", Relation:=2, FormulaText:="$K$89"
SolverAdd CellRef:="$O$88", Relation:=2, FormulaText:="$O$89"
SolverAdd CellRef:="$S$88", Relation:=2, FormulaText:="$S$89"
SolverAdd CellRef:="$W$88", Relation:=2, FormulaText:="$W$89"
SolverAdd CellRef:="$AA$88", Relation:=2, FormulaText:="$AA$89"
I'd keep it simpler:
For i = 5 To 33 Step 4
SolverAdd CellRef:="$F$" & i, Relation:=2, FormulaText:="$G$" & i
Next i
You need to take the calculation outside the quotes, e.g.
SolverAdd CellRef:="$F$" & 5+4*i, Relation:=2, FormulaText:="$G$" & 5+4*i

Resources