ಪರಿವಿಡಿ
ಎಕ್ಸೆಲ್ನಲ್ಲಿ VBA ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ ನಾವು ಎದುರಿಸುವ ಸಾಮಾನ್ಯ ದೋಷವೆಂದರೆ ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿತ ಪ್ರಕಾರವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿಲ್ಲ. ಈ ಲೇಖನದಲ್ಲಿ, ಈ ದೋಷ ಏಕೆ ಉಂಟಾಗುತ್ತದೆ ಮತ್ತು ಈ ದೋಷವನ್ನು ಹೇಗೆ ಪರಿಹರಿಸಬೇಕೆಂದು ನಾನು ನಿಮಗೆ ತೋರಿಸುತ್ತೇನೆ.
ಪ್ರಾಕ್ಟೀಸ್ ವರ್ಕ್ಬುಕ್ ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿ
ನೀವು ವ್ಯಾಯಾಮ ಮಾಡುವಾಗ ಈ ಅಭ್ಯಾಸ ವರ್ಕ್ಬುಕ್ ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿ ಈ ಲೇಖನವನ್ನು ಓದುತ್ತಿದ್ದೇವೆ.
ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿತ ಪ್ರಕಾರವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿಲ್ಲ.xlsm
2 ಕಾರಣಗಳು ಮತ್ತು ಪರಿಹಾರಗಳು ಬಳಕೆದಾರರಿಗೆ ಎಕ್ಸೆಲ್ ವಿಬಿಎ
ನಲ್ಲಿ ಟೈಪ್ ಡಿಫೈನ್ ಮಾಡಲಾಗಿಲ್ಲ ಎಕ್ಸೆಲ್ ವಿಬಿಎ ನಲ್ಲಿ ಪದೇ ಪದೇ ಎದುರಾಗುವ ದೋಷದ ಹಿಂದೆ 2 ಪ್ರಮುಖ ಸಮಸ್ಯೆಗಳಿವೆ. ಅವುಗಳನ್ನು ವಿವರವಾಗಿ ಅನ್ವೇಷಿಸೋಣ ಮತ್ತು ಅವುಗಳನ್ನು ಪರಿಹರಿಸುವ ಮಾರ್ಗಗಳನ್ನು ಕಂಡುಹಿಡಿಯೋಣ.
1. ವೇರಿಯೇಬಲ್ಗಳನ್ನು ಘೋಷಿಸುವಾಗ ಕಾಗುಣಿತ ದೋಷ
ಇದು ಈ ದೋಷದ ಹಿಂದಿನ ಪ್ರಮುಖ ಕಾರಣವಾಗಿದೆ. ಹೆಚ್ಚಿನ ಸಮಯ, ದೋಷ “ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿತ ಪ್ರಕಾರವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿಲ್ಲ” ವೇರಿಯೇಬಲ್ಗಳನ್ನು ಘೋಷಿಸುವಾಗ ಕಾಗುಣಿತ ದೋಷದಿಂದಾಗಿ ಉಂಟಾಗುತ್ತದೆ.
ಕೆಳಗಿನ ಕೋಡ್ಗಳ ಸಾಲುಗಳನ್ನು ನೋಡಿ.
6946
ನೀವು ಈ ಕೋಡ್ ಅನ್ನು ರನ್ ಮಾಡಿದರೆ, “ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿತ ಪ್ರಕಾರವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿಲ್ಲ” ದೋಷದ ಉಪಸ್ಥಿತಿಯ ಕುರಿತು ನಿಮಗೆ ತಿಳಿಸುವ ದೋಷ ಬಾಕ್ಸ್ ಅನ್ನು ನೀವು ಪಡೆಯುತ್ತೀರಿ. ಇದರ ಜೊತೆಗೆ, ಕೋಡ್ನ ಎರಡನೇ ಸಾಲನ್ನು ನೀಲಿ ಬಣ್ಣದಲ್ಲಿ ಹೈಲೈಟ್ ಮಾಡಿರುವುದನ್ನು ನೀವು ಕಾಣುತ್ತೀರಿ, ಅಲ್ಲಿ ನಾನು “strng” ಅನ್ನು “strng” .
ಎಂದು ಬರೆದಿದ್ದೇನೆ.0>ನಿಮಗೆ ವಿಷಯ ತಿಳಿಯುತ್ತದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ. VBA “strng” ವೇರಿಯೇಬಲ್ ಪ್ರಕಾರವನ್ನು ಗುರುತಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ, ಅದಕ್ಕಾಗಿಯೇ ಅದನ್ನು ಹೊಸ ವೇರಿಯಬಲ್ ಪ್ರಕಾರವೆಂದು ಪರಿಗಣಿಸಲಾಗಿದೆ ಮತ್ತು ನೀವು ಅದನ್ನು ಎಲ್ಲೋ ವ್ಯಾಖ್ಯಾನಿಸಿದ್ದೀರಿ ಎಂದು ಭಾವಿಸಲಾಗಿದೆ. ಆದರೆ ಅದು ಯಾವಾಗನೀವು ಅದನ್ನು ಎಲ್ಲಿಯೂ ಘೋಷಿಸಿಲ್ಲ ಎಂದು ಕಂಡುಹಿಡಿದಿದೆ, ಅದು ದೋಷವನ್ನು ಉಂಟುಮಾಡಿದೆ.
ಆದ್ದರಿಂದ, ಸರಳವಾದ VBA ಕೋಡ್ಗಳನ್ನು ಚಾಲನೆ ಮಾಡುವಾಗ, ನೀವು ಹೇಗಾದರೂ ಈ ದೋಷವನ್ನು ಎದುರಿಸಿದರೆ, ಮೊದಲು ನಿಮ್ಮ ವೇರಿಯಬಲ್ ಪ್ರಕಾರಗಳ ಎಲ್ಲಾ ಕಾಗುಣಿತಗಳನ್ನು ಪರಿಶೀಲಿಸಿ.
2. ಸರಿಯಾದ ಉಲ್ಲೇಖದ ಕೊರತೆ
ಇದು ಈ ದೋಷದ ಹಿಂದಿನ ಮತ್ತೊಂದು ಕಾರಣವಾಗಿದೆ. ಅದು ಸರಿಯಾದ ಉಲ್ಲೇಖದ ಕೊರತೆ. ಕೆಲವೊಮ್ಮೆ ನಾವು ನಮ್ಮ ಕೋಡ್ಗಳಲ್ಲಿ ವಿಷುಯಲ್ ಬೇಸಿಕ್ ರೆಫರೆನ್ಸ್ ಬಾಕ್ಸ್ ನಿಂದ ಸರಿಯಾದ ಉಲ್ಲೇಖದ ಅಗತ್ಯವಿರುವ ಕೆಲವು ವಸ್ತುಗಳನ್ನು ಬಳಸುತ್ತೇವೆ. ಇಲ್ಲದಿದ್ದರೆ, VBA ವಸ್ತುವನ್ನು ಗುರುತಿಸುವುದಿಲ್ಲ.
ಕೆಳಗಿನ VBA ಕೋಡ್ ಅನ್ನು ನೋಡಿ.
2470
ಈ ಕೋಡ್ ಅನ್ನು ರನ್ ಮಾಡಿ. ನೀವು ಅದೇ ಹಳೆಯ ದೋಷವನ್ನು ಪಡೆಯುತ್ತೀರಿ “ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿತ ಪ್ರಕಾರವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿಲ್ಲ”, ನಿಘಂಟಿನ ವಸ್ತು ಅನ್ನು ಹೈಲೈಟ್ ಮಾಡುತ್ತದೆ. ಏಕೆಂದರೆ VBA ನಿಘಂಟಿನ ವಸ್ತು ಅನ್ನು ಗುರುತಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ ಮತ್ತು ಇದನ್ನು ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿತ ವೇರಿಯಬಲ್ ಎಂದು ಪರಿಗಣಿಸಲಾಗಿದೆ, ಅದನ್ನು ತಪ್ಪಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿಲ್ಲ.
ಈಗ ದೊಡ್ಡ ಪ್ರಶ್ನೆಯೆಂದರೆ, ಈ ದೋಷವನ್ನು ಹೇಗೆ ಪರಿಹರಿಸುವುದು? ಸುಲಭ. ಈ ದೋಷವನ್ನು ಪರಿಹರಿಸಲು 2 ಮಾರ್ಗಗಳಿವೆ.
⧪ ಪರಿಹಾರ 1: ವಿಷುಯಲ್ ಬಾಕ್ಸ್ ರೆಫರೆನ್ಸ್ ಬಾಕ್ಸ್ನಿಂದ ಪೂರ್ವಾಪೇಕ್ಷಿತ ಉಲ್ಲೇಖವನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ
ಇದು ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು ಬುದ್ಧಿವಂತ ಮಾರ್ಗ. ಪರಿಕರಗಳು > ಗೆ ಹೋಗಿ ವಿಷುಯಲ್ ಬೇಸಿಕ್ ರಿಬ್ಬನ್ನಲ್ಲಿ ಉಲ್ಲೇಖಗಳು ಬಟನ್. ಉಲ್ಲೇಖಗಳು ಕ್ಲಿಕ್ ಮಾಡಿ.
ಉಲ್ಲೇಖಗಳು ಎಂಬ ಸಂವಾದ ಪೆಟ್ಟಿಗೆ ತೆರೆಯುತ್ತದೆ. ಸ್ಕ್ರಾಲ್ ಮಾಡಿ ಮತ್ತು ಮೈಕ್ರೋಸಾಫ್ಟ್ ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ರನ್ಟೈಮ್ (ಇದು ನೀವು ಬಳಸುತ್ತಿರುವ ವಸ್ತುವನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ. ನಿಘಂಟುobject ಗೆ Microsoft Scripting Runtime ಅನ್ನು ಗುರುತಿಸುವ ಅಗತ್ಯವಿದೆ. ಆದ್ದರಿಂದ, VBA ಕೋಡ್ನಲ್ಲಿ ವಸ್ತುವನ್ನು ಬಳಸುವಾಗ, VBA ಮೂಲಕ ಗುರುತಿಸಲು ಅದರ ಪೂರ್ವಾಪೇಕ್ಷಿತವನ್ನು ನೀವು ತಿಳಿದಿರಬೇಕು. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ಈ ಲಿಂಕ್ಗೆ ಭೇಟಿ ನೀಡಿ.). ಅದನ್ನು ಪರಿಶೀಲಿಸಿ.
ಈಗ ಹಿಂತಿರುಗಿ ಮತ್ತು ಕೋಡ್ ಅನ್ನು ರನ್ ಮಾಡಿ. ನೀವು ಯಾವುದೇ ದೋಷಗಳನ್ನು ಪಡೆಯುವುದಿಲ್ಲ. ಏಕೆಂದರೆ VBA ಈ ಬಾರಿ ನಿಘಂಟಿನ ವಸ್ತು ಅನ್ನು ಗುರುತಿಸಬಹುದು.
⧪ ಪರಿಹಾರ 2: ನಿರ್ದಿಷ್ಟ ವಸ್ತುವಿನ ಬದಲು ಶುದ್ಧ ವಸ್ತು ಎಂದು ಘೋಷಿಸುವುದು 3>
ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು ಇನ್ನೊಂದು ಮಾರ್ಗವಿದೆ. ನಿಘಂಟಿನ ವಸ್ತು ಕ್ಕಿಂತ ನೀವು ವಸ್ತುವನ್ನು ಶುದ್ಧ ವಸ್ತು ಎಂದು ಘೋಷಿಸಬಹುದು.
ಕೆಳಗಿನ ಕೋಡ್ಗಳ ಸಾಲುಗಳನ್ನು ಗಮನಿಸಿ.
2729
ಇಲ್ಲಿ ನಾನು ವೇರಿಯೇಬಲ್ MyDictionary ಅನ್ನು ಸರಳ ವಸ್ತುವಾಗಿ ಘೋಷಿಸಿದ್ದೇನೆ, ನಿಘಂಟಿನಲ್ಲ. ಈಗ ನೀವು ಈ ಕೋಡ್ ಅನ್ನು ರನ್ ಮಾಡಿದರೆ, ನೀವು ಯಾವುದೇ ದೋಷವನ್ನು ಪಡೆಯುವುದಿಲ್ಲ.