Option Explicit
Sub SplitToMultiWorksheets()
Const cSheets As String = "Sheet1,Sheet2,Sheet3,Sheet4"
Const cStr1 As String = "Are"
Const cStr2 As String = "You"
Const cStr3 As String = "me"
Const cFirstR As Long = 1
Const cCol1 As Variant = "A"
Const cCol2 As Variant = "B"
Const cCol3 As Variant = "C"
Const cCol4 As Variant = "D"
Const cFirst1 As Long = 12
Const cFirst2 As Long = 20
'Const cLast1 As Long = 19
'Const cLast2 As Long = 29
Dim vntSheets As Variant
Dim vnt1(2) As Variant
Dim vnt2(2) As Variant
Dim lastR As Long
Dim i As Long
Dim wsName As String
Dim First1 As Long
Dim First2 As Long
vntSheets = Split(cSheets, ",")
For i = 0 To UBound(vnt1)
vnt1(i) = cFirst1 - 1
vnt2(i) = cFirst2 - 1
Next
With ThisWorkbook.Worksheets(vntSheets(0))
lastR = .Cells(.Rows.Count, cCol1).End(xlUp).Row
For i = cFirstR To lastR
If .Cells(i, cCol1) = cStr1 Then
wsName = vntSheets(.Cells(i, cCol2) - 1)
Select Case .Cells(i, cCol3)
Case cStr2
First1 = vnt1(.Cells(i, cCol2) - 2) + 1
vnt1(.Cells(i, cCol2) - 2) = First1
.Parent.Worksheets(wsName).Cells(First1, cCol3) _
= .Cells(i, cCol4)
Case cStr3
First2 = vnt2(.Cells(i, cCol2) - 2) + 1
vnt2(.Cells(i, cCol2) - 2) = First2
.Parent.Worksheets(wsName).Cells(First2, cCol3) _
= .Cells(i, cCol4)
End Select
End If
Next
End With
End Sub
Необходимо проверить jQuery. Это имеет богатую основу функциональности Ajax, которая может дать Вам питание сделать все это. Можно загрузиться на внешней странице и проанализировать, это - содержимое HTML с интуитивными подобными CSS селекторами.
Использование в качестве примера $.get();
$.get("anotherPage.html", {}, function(results){
alert(results); // will show the HTML from anotherPage.html
alert($(results).find("div.scores").html()); // show "scores" div in results
});
Для внешних доменов я должен был создать локальный Сценарий PHP, который будет действовать как посредник. jQuery назовет локальную передачу Сценария PHP в URL другого сервера как аргумент, локальный Сценарий PHP соберет данные, и jQuery считает данные с локального Сценария PHP.
$.get("middleman.php", {"site":"http://www.google.com"}, function(results){
alert(results); // middleman gives Google's HTML to jQuery
});
Предоставление middleman.php что-то вроде
<?php
// Do not use as-is, this is only an example.
// $_GET["site"] set by jQuery as "http://www.google.com"
print file_get_contents($_GET["site"]);
?>
Можно также использовать iframe для эмуляции запроса ajax. Это сохраняет Вас путаница необходимости кодировать решение для Бэкенда для проблемы Frontend. Вот пример:
function setUploadEvent(typeComponet){
var eventType = "";
var iframe = document.getElementById("iframeId");
try{
/* for Mozilla / Opera9 */
if (/(?!.*?compatible|.*?webkit)^mozilla|opera/i.test(navigator.userAgent)) {
eventType = "onload";
}else{
/* IE */
eventType = "onreadystatechange";
}
iframe[eventType] = function(){
var doc = iframe.contentDocument || iframe.contentWindow.document;
var response = doc.body.innerHTML; /* or what ever content you are looking for */
}
}
catch(e){
alert("Error loading content")}
}
, Который должен добиться цели. Обратите внимание на то, что строка Определения браузера не является самой чистой, необходимо абсолютно использовать тех предоставленных во всех наиболее распространенных платформах JS (Прототип, JQuery, и т.д.)
Запишите сценарий прокси, что вперед вдоль запроса HTTP от Вашего домена, это обойдет ограничения XMLHttpRequest.
, Если Ваше использование PHP, просто используйте ЗАВИХРЕНИЕ, чтобы запросить и прочитать страницу, то просто выложенный HTML, как будто это был от Вас домен.
Необходимо будет записать прокси на сервере, чтобы сделать это. И все запросы будут к Вашему серверу, и затем Ваш сервер загрузит HTML и передаст его обратно клиенту. И нет никакого хорошего способа реализовать это с помощью JavaScript только.
jQuery содержит функциональность для загрузки данных JSON или внешнего использования сценариев XmlHttpRequest, но эта функциональность не может использоваться для страниц HTML. Также можно проверить этот поток из списка рассылки jQuery.
Вы добавляете данные в Hello.js в качестве массива, JSON или подобных. Пример: var jousonsonth = новый массив (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
Получение JavaScript с другого сервера не намного проще .. :-)