2014-06-06 22 views
7

oturumunda hiçbir şey yok Bazı makroları da kullanan bir SAS programı yazıyorum. Ancak, SAS aniden verdiğim kodları çalıştırmayı durdurdu. Kodun bir parçasını seçip gönderirsem, günlüğünde kopyalandığını görebiliyorum ama işte bu. Not, hata veya uyarı yok. Kod yürütülmedi. Kodun herhangi bir makro değişken olmadan basit bir veri adımı olması fark etmez. Hiçbir şey eksik miyim? Ne kontrol etmeli veya doğrulamalıyım?SAS kodu göndermeden sonra çalışmayı durdurur,

+2

Bu soru, deneyimli SAS kullanıcılarına açık olmalıdır, makro kodda kullanılan teklifler eşleşmediğinde bir çok kişinin içine düştüğü bir tuzaktır. – Longfish

+0

@Keith Eğer bu şekilde hissediyorsanız, tekrar oylama yapmak için yeterli sayıda (şimdi!) Yeterlidir. - lütfen çekinmeyin. – Joe

+0

@ user3714321 Bunun muhtemelen kabul edilebilir bir soru olduğunu düşünürken, biraz daha ayrıntılı bir şekilde geliştirilecekti - belki de bütün kodunuz bunun için çok fazla, ancak yazdığınız makroların bir örneği Yaptığınız şeyi daha net hale getirmek için asgari düzeyde yardımcı olun. – Joe

cevap

9

Bu, makrolarınızdan birinde klasik olarak dengesiz tırnaklara benziyor. Aşağıdaki kodu çalıştırmak onu temizlemeli, sonra hatanın kodunu kontrol etmeniz gerekecektir.

*); */; /*’*/ /*”*/; %mend; 
+2

ps, ​​sorunun neden askıya alındığından emin değilim. Bu, birçok deneyimli SAS kullanıcısının kariyerinde bir süre boyunca karşılaşacakları bir senaryodur ve tanımlanan semtonlar bu nedenle beyne gömülüdür. Eminim ki, ilk başladığında saçlarını kıran tek kişi ben değilim! – Longfish

+0

+1… 'Eminim ki, ilk ortaya çıktığında saçlarını yırtan tek kişi ben değilim!' SAS'ın böyle bir şey için günlük mesajını iyileştirmesi gerekiyor çünkü bir noktada neredeyse herkesin başına geliyor ve bu büyüklükte bir hata için çok fazla zaman harcıyoruz. – Keni

+0

Yardım etmediniz! koşmalıyım *); * /;/* ’*// *” * /; % Tamir; direkt olarak? – Mann

1

Aynı sorun, benzersiz kod işaretleri dışında makro kodlama sırasında bende de oldu. Sorun kod orjinal hattı

olarak "...% daha sonra% (Dline =% str izin (P ge 22 ve daha sonra PERSONEL eşdeğer 0 PERSONEL = 1);"

Not eşsiz "(" karakter P değişkeni. ya çıkarmadan önce "(" veya ekleme ")" "eq 0" dan sonra çözer sorunu.

0

Ben de bu konuyu neden bindiniz anlamaya.

ben (bütün makro kodunu daraltmak zaman sadece proje kodumun aynısı olan bir geçici dosyaya bakın ve onu yeniden çalıştırın.SAS aslında sadece daraltılmış parçayı çalıştırır, bu nedenle makro sadece ilk satırdır.

Yukarıdaki kod sorunumu çözüyor, ancak gelecekteki hataları önlemek için genişletilmiş makro kodunu yeniden çalıştırmam gerekiyor.

İlgili konular