2015-03-06 1 views
-2
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 
sub changeto1quickly() 
range("C1").Value = 1 
sleep(1) 
("C1").Value= 0 
End sub 

fonctionne ci-dessus pour changer C1 à 1, puis le mettre en pause revenir ensuite à 0 maintenant je dois agréger ce à travers une colonne où le décalage contient une référencefonction vba (bouton) pour changer une valeur de la cellule pendant quelques millisecondes nous revenions alors

Je dois pouvoir changer la valeur du décalage des cellules à gauche d'une colonne contenant un certain mot. Par exemple dans COLUMNS C et D de sorte que chaque cel dans la colonne B qui a Dim I doit exécuter le sous ci-dessus pour rapidement changer les zéros à ceux.

B D E 
    1 dim 0 
    dim 0 
    car 0 
    car 0 
    dim 0 
    car 0 

Je dois être en mesure de faire une formule VBA qui ferait à peu près ce que tout Excel Si la formule ferait si vous glisser vers le bas. J'ai trouvé ceci ici: http://www.quepublishing.com/articles/article.aspx?p=2021718&seqNum=8 Supposons que vous ayez une liste de produits dans la colonne A avec les totaux à côté d'eux dans la colonne B. Si vous voulez trouver un total égal à zéro et placez LOW dans la cellule à côté, faites :

Set Rng = Range("B1:B16").Find(What:="0", LookAt:=xlWhole,  LookIn:=xlValues) 
Rng.Offset(, 1).Value = "LOW" 

Bien que je besoin exposé un peu différemment à la colonne ne se réfère pas a ou B de a, mais à une colonne non adjacente. I.e vérifier est D: D a Dim puis mettre 1 dans n'importe quelle cellule qui fait dans la colonne C: C offset à coumn D: D sûrement cela peut être ajusté pour ce dont j'ai besoin. Peut-être ..

en tant que sous

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 
sub pump_onall() 

Set Rng = Range("B1:B16").Find(What:="Dim", LookAt:=xlWhole,   LookIn:=xlValues) 
Rng.Offset(3, 0).Value = 1 
sleep(1) 
Rng.Offset(3,0).Value = 0 
End sub 

Je reçois l'erreur sur la ligne RNG set

Sub pump_onall() 

Set Rng = Sheets("Account Details --->").Range("DH1:DH50").Value.Find(What:="DQ3", LookAt:=xlWhole, LookIn:=xlValues) 
Rng.Offset(0, -7).Value = 1 
Sleep (1) 
Rng.Offset(0, -7).Value = 0 
End Sub 

Certes, cela peut fonctionner

Sub pump_onall() 

Sheets("Account Details --->").Range("DH1:DH50").Value.Find(What:="DQ3", LookAt:=xlWhole, LookIn:=xlValues) 
Sheets("Account Details --->").Range("DH1:DH50").Offset(0, -7).Value = 1 
Sleep (1) 
Sheets("Account Details --->").Range("DH1:DH50").Offset(0, -7).Value = 0 
End Sub 

l'erreur que je reçois est erreur 9 indice hors limites

+0

C'est une bonne intention. Qu'avez-vous essayé jusqu'à présent? Où êtes-vous coincé? Ou vous venez juste d'arriver ici pour avoir une solution prête? – Taosique

+0

Définissez la valeur de votre cellule sur 1, puis sur Sleep (1), puis redéfinissez-la sur zéro? – laylarenee

+0

merci laylarenee cela a fonctionné - la question a été mise à jour et rangé - peut-être que je vais supprimer ceci et le poster à nouveau –

Répondre

0

La fonction Sleep vous permettra de le faire:

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 
Sub SleepTest() 
    Debug.Print Timer ' do something 
    Sleep (100)  ' wait for 10th second 
    Debug.Print Timer ' do something else 
End Sub 
+0

Il n'est pas nécessaire de supprimer ce fil, surtout s'il a aidé à résoudre votre problème. – laylarenee

+0

Les questions doivent être concises. Je suggérerais de chercher d'abord sur Internet. Si vous ne trouvez pas d'instructions, posez une nouvelle question. – laylarenee

+0

Depuis cette question est un doublon maintenant, il ne sera pas beaucoup (le cas échéant) d'attention. Je ne suis pas vraiment sûr de ce que vous essayez de faire non plus, pourriez-vous poser une nouvelle question avec une portée plus basique. Pour commencer, vous changez ces valeurs à 1 pour un but ... quel est ce but spécifique? et pourquoi cela doit-il être une courte période de temps? Changez-vous cela en un pour effectuer une sommation? – laylarenee