Поскольку мы не можем сделать всю работу за вас, это должно дать вам представление о том, как может выглядеть цикл:
Option Explicit
Public Sub MyUpdateProcedure()
Dim Employees As Range 'define the range of employees
Set Employees = ThisWorkbook.Worksheets("SheetName").Range("F82:F96")
Dim CurrentWorkbook As Workbook
Const EmployePath As String = "J:\Planning\Medewerkers\"
Dim Employe As Range
For Each Employe In Employees 'loop throug all employees
'open the workbook
Set CurrentWorkbook = Workbooks.Open(EmployePath & Employe.Value & ".xlsm")
With CurrentWorkbook.Sheets("Blad1")
'your stuff here
End With
'your other stuff here
'save and close workbook
CurrentWorkbook.Close SaveChanges:=True
Next Employe
End Sub
Обратите внимание, что вам следует избегать ActiveWorkbook
и вместо этого установить открытую книгу в переменную типа Set CurrentWorkbook = Workbooks.Open
, которую вы можете легко использовать тогда.
Также убедитесь, что все ваши Range(…)
объекты имеют рабочую книгу / рабочий лист, указанный как ThisWorkbook.Worksheets("SheetName").Range(…)
, в противном случае Excel угадает, какой лист вы имеете в виду.
Также следует помнить об ошибках:
Set CurrentWorkbook = Workbooks.Open(EmployePath & Employe.Value & ".xlsm")
выдаст ошибку, если книга не существует, поэтому вы можете ее перехватить:
'open the workbook
Set CurrentWorkbook = Nothing 'initialize since we are in a loop!
On Error Resume Next 'next line throws an error if file not found so catch it
Set CurrentWorkbook = Workbooks.Open(EmployePath & Employe.Value & ".xlsm")
On Error GoTo 0 'always re-activate error reporting!
If Not CurrentWorkbook Is Nothing Then
'file for employee was found
With CurrentWorkbook.Sheets("Blad1")
'your stuff here
End With
'your other stuff here
'save and close workbook
CurrentWorkbook.Close SaveChanges:=True
Else
'file for employee was not found
End If
То, что наконец работало на меня (Grails теперь работает гладко), делает почти как Steve B., указал:
JAVA_HOME=/usr/lib/jvm/default-java
Таким образом, если пользователь изменяет JDK по умолчанию для системы, JAVA_HOME
все еще работы.
default-java
символьная ссылка на текущую JVM.
Посмотрите то, что команда альтернатив обновления делает (она имеет хорошего человека...).
Вскоре - что происходит, когда у Вас есть java-sun-1.4 и java-opensouce-1.0..., какой берет "Java"? Это debian "/usr/bin/java" является символьной ссылкой и "/usr/bin/java-sun-1.4" является альтернативой Редактированию "/usr/bin/java"
: Как Richard сказал, update-alternatives
недостаточно. На самом деле необходимо использовать update-java-alternatives
. Больше информации в:
Моя корректная цель должна была всегда загружать его с Sun и просто устанавливать его тот путь. Тогда Вы знаете точно, в какой каталог все входит.
, Но если Вы предпочли бы придерживаться нечетного способа, которым Debian устанавливает его, мое лучшее предположение было бы родительским каталогом чуть выше, где Java и javac двоичные файлы расположены.
(так как при определении его в пути, это - $JAVA_HOME/bin) (Так в случае это было бы... $JAVA_HOME/share и $JAVA_HOME были бы/usr?)
хартри, которые не звучат правильными...
мне интересно слышать ответ на это также!
Насколько я помню, я использовал сценарий альтернатив Java обновления вместо альтернатив обновления. И это действительно устанавливало JAVA_HOME для меня правильно.
Попытайтесь установить переменную JAVA_LIB также.
У меня обычно нет переменной среды JAVA_HOME. Java может установить его сам. В Java java.home системное свойство должно быть доступным.
Стандартная установка Ubuntu, кажется, помещает различные версии Java в /usr/lib/jvm
. Эти javac
, Java, который Вы находите в своем пути, будет softlink к этому.
нет никакой проблемы с установкой Вашей собственной версии Java нигде, Вам нравится, пока Вы устанавливаете JAVA_HOME
переменная среды и удостоверяетесь, что имели новый Java bin
на своем пути.
А простой способ сделать это должно иметь Java, домой существуют как softlink, так, чтобы, если Вы хотите обновить или переключиться, присвоил версию Вам, только должны изменить каталог, на который это указывает на - например:
/usr/bin/java --> /opt/jdk/bin/java,
/opt/jdk --> /opt/jdk1.6.011
Я всегда склонен устанавливать JAVA_HOME согласно /usr/bin/java
.
JAVA_HOME="$(dirname -- "$(dirname -- "$(readlink -f /usr/bin/java)")")"
Таким образом, обе альтернативы указывают на то же местоположение