VBA noob здесь (только начал использовать его вчера) в Excel 2007, и я пытаюсь сопоставить имена пользователей с полными именами, используя QueryTables и цикл.
Я сделал большую часть этого, просто во время работы он правильно заполняет ячейку, но когда он попадает в следующую ячейку, он очищает содержимое ячейки над ней. По сути, я вижу имена, «путешествующие» вниз по списку, и в конце у меня просто одно имя в самом низу.
Мой стол начинается так:
| user name | full name |
| psmith | |
| duane | |
| susanl | |
Моя таблица должна выглядеть следующим образом после запуска макроса:
| user name | full name |
| psmith | Peter Smith |
| duane | Duane Roberts |
| susanl | Susan Li |
Но вместо этого я получаю это во время работы (представьте, что это похоже на анимацию):
| user name | full name |
| psmith | Peter Smith |
| duane | |
| susanl | |
| user name | full name |
| psmith | |
| duane | Duane Roberts |
| susanl | |
| user name | full name |
| psmith | |
| duane | |
| susanl | Susan Li |
Мой код выглядит так:
Dim rngUserName As Range
Dim userName As String
Set rngUserName = ActiveSheet.Range("D2")
Do Until IsEmpty(rngUserName.Offset(0, -1))
userName = rngUserName.Offset(0, -1).Value
With Worksheets(1).QueryTables.Add(Connection:= _
"URL;http://mysite.com/scripts/cgi-bin/map_name.cgi?" & userName, _
Destination:=rngUserName)
.Name = "map_name.cgi?" & userName & "_1"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = True
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlAllTables
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = False
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery = True
End With
Set rngUserName = rngUserName.Offset(1, 0)
Loop
Почему извлеченный текст не прилипает ?? Это сводит меня с ума, и Google не помогает ...
Спасибо !!